我试图在容器内传递一个目录,最终可以将其自动化。但是除了物理编辑Dockerfile并手动键入要添加的特定目录外,我没有其他选择。

注意:我已经尝试过挂载卷,但是该解决方案无济于事,因为我想最终在目录中调用容器,该目录最终将在容器中的目录上运行脚本-而不是简单地复制本地目录在容器内。

方法1:

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

ARG project_directory
ADD $project_directory .

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

最佳答案



这就是您现在使用ADD $project_directory所做的。如果需要从容器中进行更改并将其反射(reflect)到主机上,请使用:

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

关于docker - Docker参数化内部传递的文件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50157128/

10-16 18:17