Docker 参数化内部传递的文件



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

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

方法一:

$ --build-arg project_directory=/path/to/dir
ARG project_directory
ADD $project_directory . 

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

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

这正是您现在正在做的事情,通过使用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

最新更新