gpt4 book ai didi

docker - 如何彻底阻止容器重启 Kubernetes

转载 作者:行者123 更新时间:2023-12-02 11:30:34 24 4
gpt4 key购买 nike

我想创建一个 nginx 容器,将我本地机器/home/git/html 的内容复制到容器/usr/share/nginx/html 中。但是我不能使用 Volumes 和 Mountpath,因为我的 kubernetes 集群有 2 个节点。
我决定从我的 github 帐户复制内容。然后我创建了这个 dockerfile:

FROM nginx
CMD ["apt", "get", "update"]
CMD ["apt", "get", "install", "git"]
CMD ["git", "clone", "https://github.com/Sonlis/kubernetes/html"]
CMD ["rm", "-r", "/usr/share/nginx/html"]
CMD ["cp", "-r", "html", "/usr/share/nginx/html"]
dockerfile 构建正确,但是当我使用此镜像应用部署时,容器不断重新启动。我知道一旦 docker 完成其工作,它就会关闭,然后部署会重新启动它,从而创建循环。但是,当应用基本的 nginx 图像时,它工作正常。解决办法是什么?我看到了无限期运行进程以保持容器处于事件状态的解决方案,但我认为这不是一个合适的解决方案。
谢谢 !

最佳答案

您需要使用 RUN在构建 docker 镜像时执行命令,如@tgogos 评论中所述。见 refer .
你可以尝试这样的事情:

FROM nginx
RUN apt-get update && \
apt-get install git
RUN rm -rf /usr/share/nginx/html && \
git clone https://github.com/Sonlis/kubernetes/html /usr/share/nginx/html

CMD ["nginx", "-g", "daemon off;"]
另外,我想推荐你看看 this part of documentation了解如何利用缓存层和多阶段构建来优化您的图像。

关于docker - 如何彻底阻止容器重启 Kubernetes,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62571627/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com