使用已安装的卷将文件从主机替换为容器

时间:2020-01-29 13:47:50

标签: docker docker-compose dockerfile

我正在尝试更改应用程序安装所需的一些配置文件,但不想更改源代码中的原始配置文件。
原始配置文件的路径为cp <path of new config on host>/local_db_setup.rb /usr/src/app/env_configs/
我尝试实现此目标的方法是在我的Dockerfile中

docker-compose.yml

但是,我认为由于我的卷安装在volumes: -.:/usr/src/app 中,因此未进行复制或覆盖。

{{1}}

我该怎么办?

1 个答案:

答案 0 :(得分:0)

If you bind-mount into a non-empty directory on the container, the directory’s existing contents are obscured by the bind mount.因此,容器内/usr/src/app处的所有现有内容都会被遮盖。

如果您要按照问题中的说明在映像构建期间复制新的配置文件,可以将其复制到映像中的其他目录(/tmp/config/)并将其移动到正确的位置({{1 }})使用入口点脚本,该脚本首先移动,然后启动实际的入口点。

相反,如果可以的话,您也可以直接从主机挂载配置文件。