Docker 找不到 OpenJDK

Docker can't find OpenJDK

我是第一次使用 Docker 进行试验,我正在尝试在 Docker 容器内将 Spring 启动网络应用程序 运行。我正在构建应用程序(将其打包到一个独立的 jar 中),然后 然后 将其添加到 Docker 图像(这就是我想要的)。

我正在按照 OpenJDK Docker base image here. You can find my SSCCE at this Bootup repo on GitHub 的说明进行操作,其自述文件包含重现我所见内容的所有说明。但基本上:

错误:

/bin/sh: 1: /bin/sh: [java,: not found

根据 Google Gods,这个 曾经 是 Oracle JDK 图像的问题,但应该 不是 发生在 OpenJDK 图片上。

查看我的 Docker 文件(也在那个 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 文件工作正常:

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从我的配置来看,一切正常,我可以在 localhost:8080

上从浏览器连接到应用程序

截图如下:

此外,由于您发布了 github 存储库,我建议您修改自述文件,以便用户可以从 docker 开始 gradle 而无需 java主机中的环境 运行 这一次命令:

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