假设你的文件夹结构,目前是:
$ tree config/
config/
|-- datanucleus.properties
|-- log4j.properties
|-- subdir1
| `-- subdir1 -> subdir1
|-- subdir2
| `-- subdir2 -> subdir2
`-- subdir3
`-- subdir3 -> subdir3
一个解决办法是利用使用符号链接。做到这一点:
mkdir dockerconfig
cd dockerconfig
ln -s ../originalconfig/subdir1 subdir1
ln -s ../originalconfig/subdir2 subdir2
ln -s ../originalconfig/subdir3 subdir3
cd ..
是的,这些将暂时悬而未决,但他们不会在容器内。
现在,让两个音量坐骑,如:
docker run --rm -it -v $PWD/config:/root/originalconfig -v $PWD/dockerconfig:/root/config centos:6.8 /bin/bash
而且,然后在容器内,你将有:
[[email protected] ~]# tree /root/
/root/
|-- anaconda-ks.cfg
|-- config
| |-- subdir1 -> ../originalconfig/subdir1
| |-- subdir2 -> ../originalconfig/subdir2
| `-- subdir3 -> ../originalconfig/subdir3
|-- install.log
|-- install.log.syslog
|-- originalconfig
| |-- datanucleus.properties
| |-- log4j.properties
| |-- subdir1
| | `-- subdir1 -> subdir1
| |-- subdir2
| | `-- subdir2 -> subdir2
| `-- subdir3
| `-- subdir3 -> subdir3
|-- subdir1
`-- subdir3
8 directories, 10 files
现在您的应用程序可以使用/root/config
感谢你的快速反应。问题是当我的容器启动时,它会根据dockercompose.yml文件中设置的环境变量更新datanuclueus.properties中的一些属性。如果我装入配置文件夹,我收到异常,datanuclues.properties文件未找到 – Nagesh
您可以在dockerconfig文件夹中保留'datanuclues.properties'文件的副本。 –
我们的应用程序建立在一个开源平台上,我们的图像扩展了该图像。 datanuclues.properties是由该映像在config目录下生成的,我们的配置生成为config目录中的子文件夹 – Nagesh