假设我将我的代码从 github check out 到 ~/repos/shinycode
上。
$> cd ~/repos/shinycode
$> ls
Dockerfile
www/index.html
$> cat Dockerfile
FROM nginx
ADD www /usr/share/nginx/html
对于部署,一切正常:从 github checkout 并运行 docker build
。
然而,在开发环境中,我想使用相同的 Dockerfile
运行容器,但也想实时编辑 www
目录中的文件,例如如果我为 docker run
提供了一个 -v www:/usr/share/nginx/html
选项。
在这种情况下,最佳做法是什么?我是否应该在没有最终 ADD
命令的情况下为开发人员创建一个单独的 Dockerfile
?我是不是以完全错误的方式处理这件事?
谢谢
最佳答案
您可以使用相同的 Dockerfile 并使用任何外部卷挂载图像的/usr/share/nginx/html 文件夹。卷的安装在文件系统中具有优先权,您不会从该位置的镜像中看到任何内容。
关于docker - 如何在开发环境中有条件地挂载主机容器卷并在构建时添加?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38075518/