【问题标题】:Configure git while building docker image构建 docker 镜像时配置 git
【发布时间】:2021-11-11 10:18:57
【问题描述】:

问题
我有一个使用 访问令牌客户端证书 的 git 配置。在构建 docker 映像时,我需要使用相同的 git 配置(以访问所有必需的源)。


我所做的事情现在在Dockerfile 中是这样的,它对我有用:

(...)
ARG SRC="/src"
RUN mkdir ${SRC}

# copying cert files inside docker image
COPY certificate.crt ${SRC}
COPY certificate.key ${SRC}

# configuring the same git settings inside
RUN git config --global user.name "${USER_NAME}"
RUN git config --global user.email "${EMAIL}"
RUN git config --global url."https://${ACCESS_TOKEN}@git_domain.com/".insteadOf "ssh://git@git_domain.com/"
RUN git config --global http."https://git_domain.com/".sslCert "/src/certificate.crt"
RUN git config --global http."https://git_domain.com/".sslKey "/src/certificate.key"
(...)

问题是
也许有一些更“简洁”或更简单的方法?
是否可以使用现有的本地文件.gitconfig?以某种方式指定它的路径?

我发现了这个问题 Copying local git config into docker container,但 docker run 不适合。我需要做类似的事情,但使用docker build

【问题讨论】:

  • Git 配置存储在非常简单(类似于ini)的文件中,可以很容易地手动生成。例如全局配置存储在~/.gitconfig(见this section for details)。
  • 还请记住,您可以非常轻松地读取图像的docker history,或将.gitconfig 文件复制出来,然后取回这些凭据。与证书文件类似。我建议在运行 docker build 之前提取应用程序源代码,并在运行时注入 TLS 密钥。
  • @JoachimSauer 好的,我知道,但接下来我该怎么做?如何在 docker 镜像中从 ~/.gitconfig 传递 git 配置?

标签: git docker


【解决方案1】:

我需要做类似的事情,但使用 docker build。

我会先在本地生成正确的 gitconfig 文件,然后在生成后,在 docker build 期间从 Dockerfile 复制它。

COPY .gitconfig .

【讨论】:

    猜你喜欢
    • 2020-10-06
    • 2021-04-16
    • 1970-01-01
    • 2020-11-04
    • 1970-01-01
    • 1970-01-01
    • 2016-02-16
    • 1970-01-01
    • 2017-09-15
    相关资源
    最近更新 更多