我正在尝试传递容器内的目录,最终可以将其自动化。但是除了物理编辑Dockerfile并手动输入要添加的特定目录之外,我没有看到任何其他选择。
注意:我已经尝试过挂载卷,但是这个解决方案对我的问题没有帮助,因为我想最终在一个目录上调用容器,该目录最终将在容器中的目录上运行脚本 - 而不仅仅是复制容器内的本地目录。
方法1:
$ --build-arg project_directory=/path/to/dir
ARG project_directory
ADD $project_directory .
我的不成功的解决方案假设我可以使用参数的值作为ADD
命令可以解释的基本字符串,就像我只是手动输入路径一样。
答案 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