2017-02-11 26 views
0

我想在我的当前目录中安装一切,除了2个文件。 log4j.properties和datanucleus.properties如何添加音量到Docker但排除文件

MYAPP /配置:/根/ MyApp的/配置

我的目录结构如下

配置

subdir1

subdir2

subdir3

log4j.properties

datanucleus.properties

我现在有手动安装的所有路径如下:

MYAPP /配置/ subdir1:/根/ MyApp的/配置/ subdir1

的myapp /配置/ subdir2:/根/ MyApp的/配置/ subdir2

MYAPP /配置/ subdir3:/根/ MyApp的/配置/ subdir3

是否有任何选项在目录中安装的一切,排除一些文件

感谢您的澄清

回答

0

假设你的文件夹结构,目前是:

$ 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

+0

感谢你的快速反应。问题是当我的容器启动时,它会根据dockercompose.yml文件中设置的环境变量更新datanuclueus.properties中的一些属性。如果我装入配置文件夹,我收到异常,datanuclues.properties文件未找到 – Nagesh

+0

您可以在dockerconfig文件夹中保留'datanuclues.properties'文件的副本。 –

+0

我们的应用程序建立在一个开源平台上,我们的图像扩展了该图像。 datanuclues.properties是由该映像在config目录下生成的,我们的配置生成为config目录中的子文件夹 – Nagesh

相关问题