Nim*_*shn 6 git docker dockerfile
我正在编写一个 dockerfile,我想在其中下载一组不断变化的 git repos:repo1、repo2、repo3。我应该如何在映像构建或容器运行时向 dockerfile 提供这些 url/字符串?
我知道可以使用ARG指令传递参数并使用
docker build --build-arg <var-name>=<value>
但是当我有一个任意长度的 args 列表时会发生什么?
非常感谢。
小智 1
镜像构建时的 dockerfile
这可能不是最好的主意,但您最终会得到环境变量并在 dockerfile 中使用它们。
容器运行时间
恕我直言,这是一个更好的主意。如果您知道该命令需要输入,则可以将其添加到 dockerfile 中:
ENTRYPOINT ["git","-c","/tmp"]
CMD ["--help"]
Run Code Online (Sandbox Code Playgroud)
我们对 git 有一个“硬编码”参数,也就是说,每次运行这个 docker 容器时,参数-c /tmp都会传递给 git。我用这个作为例子,以防您需要它,但这不是必需的,并且ENTRYPOINT ["git"]可以正常工作。
在这种情况下,CMD 是“默认”。在这种情况下,我们使用“--help”作为帮助告诉用户他们需要添加参数的一种方式。
您可以将 CMD 设置为默认存储库,或者您想要的任何内容。
恕我直言,ENTRYPOINT 和 CMD 应始终结合使用。
如果您好奇为什么使用 ENTRYPOINT [](这是 Docker 的首选形式),这来自 docker 文档:
注意:与 shell 形式不同,exec 形式不调用命令 shell。这意味着不会发生正常的 shell 处理。例如,CMD [ "echo", "$HOME" ] 不会对 $HOME 进行变量替换。如果您想要 shell 处理,则可以使用 shell 形式或直接执行 shell,例如:CMD [ "sh", "-c", "echo $HOME" ]。当使用 exec 形式并直接执行 shell 时,就像 shell 形式一样,是 shell 进行环境变量扩展,而不是 docker。
| 归档时间: |
|
| 查看次数: |
3141 次 |
| 最近记录: |