我有一个Docker映像,可以在本地计算机上运行,没有问题,但是当我尝试在Kubernetes集群中运行它时,容器无法启动,因为它无法执行应用程序的启动命令。
我正在复制
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"]
我可以使用
docker run
命令。
当我从kubernetes集群的gitlab注册表中提取这个图像时,问题就开始出现了。当我
describe
集装箱正在运行的吊舱。因为找不到
/dist
即使在我把它复制到dockerfile之后。
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal Scheduled 12m default-scheduler Successfully assigned <REDACTED>/<REDACTED>-<REDACTED> to <REDACTED>.eu-central-1.compute.internal
Normal Pulled 11m (x5 over 12m) kubelet, <REDACTED>.eu-central-1.compute.internal Successfully pulled image "<REDACTED>/<REDACTED>/<REDACTED>/<REDACTED>"
Normal Created 11m (x5 over 12m) kubelet, <REDACTED>.eu-central-1.compute.internal Created container
Warning Failed 11m (x5 over 12m) kubelet, <REDACTED>.eu-central-1.compute.internal Error: failed to start container "<REDACTED>": Error response from daemon: OCI runtime create failed: container_linux.go:348: starting container process caused "exec: \"/dist/bin/start\": stat /dist/bin/start: no such file or directory": unknown
Normal Pulling 10m (x6 over 12m) kubelet, <REDACTED>.eu-central-1.compute.internal pulling image "registry.gitlab.com/<REDACTED>/<REDACTED>/<REDACTED>"
Warning BackOff 119s (x44 over 11m) kubelet, <REDACTED>.eu-central-1.compute.internal Back-off restarting failed container
有什么东西我遗漏了吗?