每次更改后重建容器?

Gol*_*den 60 docker

如果您有以下情况,Docker文档建议使用该ONBUILD指令:

例如,如果您的映像是可重用的python应用程序构建器,则需要将应用程序源代码添加到特定目录中,并且可能需要在此之后调用构建脚本.您现在不能只调用ADD和RUN,因为您还无法访问应用程序源代码,并且每个应用程序构建都会有所不同.您可以简单地为应用程序开发人员提供一个样板Dockerfile来复制粘贴到他们的应用程序中,但这样做效率低,容易出错且难以更新,因为它与特定于应用程序的代码混合在一起.

基本上,这一切听起来都不错,但这确实意味着每次改变某些东西时我都必须重新创建app容器,即使它只是一个错字.

这似乎不是非常有效,例如在创建用于在浏览器中更改内容,保存和点击刷新的Web应用程序时.

你怎么处理这个?

Tho*_*eil 86

这意味着每次我改变一些东西时我都必须重新创建app容器,即使它只是一个错字

不一定,您可以使用命令-v选项项目文件注入容器.因此,您不必重建docker镜像.docker run

请注意,该ONBUILD指令适用于Dockerfile继承FROM父Dockerfile的情况.ONBUILD当Docker构建子Dockerfile的映像时,将运行父Dockerfile中的指令.


这似乎不是非常有效,例如在创建用于在浏览器中更改内容,保存和点击刷新的Web应用程序时.

如果您在迭代应用程序代码时使用Docker容器来提供Web应用程序,那么我建议您创建一个特殊的Docker映像,其中只包含运行应用程序但应用程序代码的所有内容.

然后在主机上共享包含应用程序代码的目录,其中包含在docker容器中提供应用程序文件的目录.

例如,如果我正在开发一个静态网站并且我的工作区处于/home/thomas/workspace/project1/,那么我将启动一个运行nginx的容器:

docker run -d -p 80:80 -v /home/thomas/workspace/project1/:/usr/local/nginx/html:ro nginx
Run Code Online (Sandbox Code Playgroud)

这样我可以更改文件/home/thomas/workspace/project1/并更改实时反映,而无需重建docker镜像甚至重新启动docker容器.