社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  docker

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

David Doe • 4 年前 • 844 次点击  

我有一个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

有什么东西我遗漏了吗?

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/39919
 
844 次点击  
文章 [ 1 ]  |  最新文章 4 年前
Ijaz Ahmad Khan
Reply   •   1 楼
Ijaz Ahmad Khan    5 年前

也许你需要修复你的dockerfile,并注意docker指令的顺序和一些最佳实践。

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

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

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