Docker找不到OpenJDK

前端之家收集整理的这篇文章主要介绍了Docker找不到OpenJDK 前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我第一次尝试使用Docker,并且试图让Spring Boot Web应用程序在Docker容器中运行.我正在构建应用程序(将其打包到一个独立的jar中),然后将其添加到Docker映像(这就是我想要的).

我在这里遵循OpenJDK Docker base image的指示.您可以在Bootup repo on GitHub上找到我的SSCCE,其自述文件中包含了重现我所看到内容的所有说明.但基本上:

>我将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
最佳答案
我使用此dockerfile正常工作:

FROM openjdk:8

RUN mkdir /opt/bootup

ADD build/libs/bootup.jar /opt/bootup
WORKDIR /opt/bootup
EXPOSE 8080
ENTRYPOINT java -jar bootup.jar

使用此命令可以正常运行:

docker run -it -p 8080:8080 --name bootup bootup

我不是Java开发人员,所以我不知道为什么它会忽略要求它在端口9200上启动的配置,因为您的应用程序在端口8080上启动,但是从docker的角度来看,一切都在使用我的配置,并且我可以连接从我的浏览器在本地主机上访问应用程序:8080

这里的截图:

Screenshot

另外,由于您已经发布了github存储库,因此我建议您修改自述文件,以便用户可以从docker启动gradle,而无需在运行此命令的主机中使用Java环境:

docker run --rm -v "$PWD":/usr/src/myapp -w /usr/src/myapp openjdk:8 /usr/src/myapp/gradlew clean build

猜你在找的Docker相关文章