docker - 如何在开发环境中有条件地挂载主机容器卷并在构建时添加?

标签 docker

假设我将我的代码从 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/

相关文章:

docker - 在Influxdb中,我无法在时间范围内检索正确的值

docker - 启用 Keycloak 只读用户属性时出现问题

docker - 以桥接模式但固定端口且超出预定义范围部署Mesos docker容器

php - 在外部 API 调用上将 PhpStorm 连接到 Xdebug

没有卷运行的docker,容器系统文件存储在哪里?

python - 两个独立的 Flask 应用程序在 Docker 容器中进行通信

java - TumblingWindow 中的 Flink AggregateFunction 自动分割为两个窗口以实现大窗口大小

docker - Kafka 中的数据如何能够在容器回收后幸存下来?

如果没有 Dnscache,Docker 无法启动

mysql - SO Prisma GraphQL 错误 : Whoops. 看起来像内部服务器错误