我有一个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
我这里缺少什么吗?
答案 0 :(得分:1)
也许您需要修复Dockerfile,并注意Docker指令的顺序和一些最佳实践。
FROM openjdk:11-jre-slim
WORKDIR /dist
COPY dist/* .
EXPOSE 9000 9443
CMD ["/dist/bin/start","-Dhttps.port=9443"]
然后首先在本地进行测试,并通过执行到容器并执行ls