我第一次尝试使用Docker,并试图在Docker容器中运行Spring Boot Web应用程序。我正在构建该应用程序(它会打包成一个自包含的jar文件),然后将其添加到Docker映像中(这正是我想要的)。
我遵循这里 OpenJDK Docker基础映像 的说明。您可以在此 Bootup repo on GitHub 找到我的 SSCCE,其中README有所有重现我所看到的内容的说明。但基本上:
- 我将Web应用程序构建为jar文件 - 运行
错误信息:
根据Google Gods,这曾经是Oracle JDK镜像的问题,但不应该发生在OpenJDK镜像中。
查看我的Dockerfile(也在GitHub存储库中),有人能看出我哪里出错了吗?
我遵循这里 OpenJDK Docker基础映像 的说明。您可以在此 Bootup repo on GitHub 找到我的 SSCCE,其中README有所有重现我所看到的内容的说明。但基本上:
- 我将Web应用程序构建为jar文件 - 运行
docker build -t bootup .
成功
- 运行 docker run -it --rm --name bootup bootup
,然后给我以下错误并退出:错误信息:
/bin/sh: 1: /bin/sh: [java,: not found
根据Google Gods,这曾经是Oracle JDK镜像的问题,但不应该发生在OpenJDK镜像中。
查看我的Dockerfile(也在GitHub存储库中),有人能看出我哪里出错了吗?
FROM openjdk:8
RUN mkdir /opt/bootup
ADD build/libs/bootup.jar /opt/bootup
WORKDIR /opt/bootup
ENTRYPOINT ['java', '-jar', 'bootup.jar']
CMD ['']
提前致谢!
更新:
docker ps
的输出:
CONTAINER ID IMAGE COMMAND CREATED
16bde964ff6b bootup "/bin/sh -c 'java -ja" 2 days ago
STATUS PORTS NAMES
Up 14 seconds 0.0.0.0:8080->8080/tcp bootup
docker run -it -d --rm --name bootup bootup
,然后再执行docker exec -it bootup /bin/bash
? - Mano Marksdocker run -it -d --name bootup bootup
- Mano Marks-p 9200:9200
暴露一个端口。假设你正在使用 Docker for Mac 或 Docker for Windows,那么这应该可以让你访问 localhost:9200。 - Mano Marks