Docker容器在本地计算机上成功启动,但无法在kubernetes集群中执行CMD命令

时间:2019-03-17 18:18:27

标签: docker kubernetes

我有一个Docker映像,可以在本地计算机上正常运行,但是当我尝试在Kubernetes集群中运行它时,该容器无法启动,因为它无法执行该应用程序的启动命令。< / p>

我正在复制std::list目录,因为这是我打包应用程序的位置。如果我想在本地运行它,则只需运行dist,然后该应用程序将启动。这是目录的结构。

./dist/bin/start

这是我正在使用的dist/ ├── bin │   └── start ├── conf │   ├── application.conf │   ├── routes │   └── secure.conf ├── my-play-framework-api-0.1.0-SNAPSHOT └── lib

Dockerfile

我可以使用FROM openjdk:11-jre-slim COPY dist /dist EXPOSE 9000 9443 WORKDIR /dist CMD ["/dist/bin/start","-Dhttps.port=9443"] 命令来构建并运行该映像。

当我从Kubernetes集群的Gitlab注册表中提取此映像时,问题开始出现。当我docker run运行容器的Pod时,图像会根据输出成功提取。似乎该容器没有启动,因为即使我将其复制到其中,也无法找到describe目录Dockerfile。

/dist

我这里缺少什么吗?

1 个答案:

答案 0 :(得分:1)

也许您需要修复Dockerfile,并注意Docker指令的顺序和一些最佳实践。

FROM openjdk:11-jre-slim
WORKDIR /dist
COPY dist/* .
EXPOSE 9000 9443

CMD ["/dist/bin/start","-Dhttps.port=9443"]

然后首先在本地进行测试,并通过执行到容器并执行ls

来确保所需的目录结构存在于内部