【发布时间】:2020-10-15 16:35:06
【问题描述】:
我想创建一个 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 映像时,它可以正常工作。解决方案是什么?我看到解决方案无限期地运行一个进程以使容器保持活动状态,但我认为这不是一个合适的解决方案。
谢谢!
【问题讨论】:
-
来自 Dockerfile reference:“
Dockerfile中只能有一条CMD指令”。这也可能对您有所帮助:Difference between RUN and CMD in a Dockerfile -
哦,好的,谢谢你的链接。我不知道 RUN 和 CMD 之间有区别,我很傻!
标签: docker nginx kubernetes