Docker参数化文件传入内部

时间:2018-05-03 14:09:51

标签: docker docker-compose dockerfile

我正在尝试传递容器内的目录,最终可以将其自动化。但是除了物理编辑Dockerfile并手动输入要添加的特定目录之外,我没有看到任何其他选择。

注意:我已经尝试过挂载卷,但是这个解决方案对我的问题没有帮助,因为我想最终在一个目录上调用容器,该目录最终将在容器中的目录上运行脚本 - 而不仅仅是复制容器内的本地目录。

方法1:

$ --build-arg project_directory=/path/to/dir

ARG project_directory
ADD $project_directory . 

我的不成功的解决方案假设我可以使用参数的值作为ADD命令可以解释的基本字符串,就像我只是手动输入路径一样。

1 个答案:

答案 0 :(得分:1)

  

不仅仅是复制容器内的本地目录

使用ADD $project_directory,这正是您现在正在做的事情。如果您需要从容器进行更改并将其反映到主机上,请使用:

docker run -v $host_dir:$container_dir image:tag

上面的命令启动一个新容器,你很可能用不同的目录名启动它。你可以在一个循环中,从jenkins管道,shell脚本或适合你的开发环境的任何东西这样做。

#!/bin/bash
container_dir=/workspace
for directory in /src /realsrc /kickasssrc
do
    docker run -v $directory:$container_dir image:tag
done