我正在尝试更改应用程序设置所需的一些配置文件,但不想更改源代码中的原始配置文件。
原始配置文件的路径为/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/
(,该脚本首先执行移动,然后启动实际的入口点。
相反,如果可以的话,您也可以直接从主机挂载配置文件。