将文件从主机替换为容器,并用装载的卷



我正在尝试更改应用程序设置所需的一些配置文件,但不想更改源代码中的原始配置文件。
原始配置文件的路径为/usr/src/app/env_configs/local_db_setup.rb
我尝试实现这一目标的方式是在我的 Dockerfile 中

cp <path of new config on host>/local_db_setup.rb /usr/src/app/env_configs/

但是,我认为由于我的卷安装在docker-compose.yml,复制没有发生或被覆盖。

volumes:
-.:/usr/src/app

我该怎么做?

如果绑定挂载到容器上的非空目录中,则绑定挂载会遮盖该目录的现有内容。因此,容器内/usr/src/app的任何现有内容都会被阴影化。

如果要在映像构建期间复制新的配置文件,如问题中所述,可以将其复制到映像(/tmp/config/(中的其他目录,并使用入口点脚本将其移动到正确的位置(/usr/src/app/env_configs/(,该脚本首先执行移动,然后启动实际的入口点。

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

相关内容

  • 没有找到相关文章

最新更新