将本地git配置复制到docker容器中

时间:2018-10-15 15:00:31

标签: linux git docker docker-compose

我同时使用docker和docker-compose来托管一个LAMP堆栈。我希望能够在我的一个容器内使用git而无需在构建后在推送时询问我的user.email和user.name。以及其他内容,例如我的push.default和分支设置。有什么好方法让docker或docker-compose将Optional的结果复制到容器中的文件中,然后我可以将其与入口点一起使用来设置git config。

2 个答案:

答案 0 :(得分:5)

  

是否有什么好方法可以让docker或docker-compose将git config --list的结果复制到容器中的文件中,然后可以与入口点一起使用来设置git config。

您真的不需要这样做就可以达到目标,这里有一个发件箱解决方案:

对于运行git的主机,git config --list的所有内容都存储在文件中:

  • 如果使用git config --system进行配置,它们将存储在/etc/gitconfig
  • 如果使用git config --global进行配置,它们将存储在~/.gitconfig

因此,您只需要将文件挂载到容器,然后就可以在主机上重用git configure了。

仅供参考。

  • 如果主机使用--global来配置git:

    docker run --rm -it -v ~/.gitconfig:/etc/gitconfig your_image_with_git git config --list
    

    输出:user.name=xxx

  • 如果主机使用--system来配置git:

    docker run --rm -it -v /etc/gitconfig:/etc/gitconfig your_image_with_git git config --list
    

    输出:user.name=yyy

对于docker-compose,您只需配置volumes即可定义安装。

答案 1 :(得分:-2)

我假设您希望能够在容器内使用git,但同时又不想一次又一次键入用户名和密码?

我能想到的方法很简单,只需在Dockerfile中添加git config命令即可​​。

原因是您将始终以一种或另一种方式以纯文本形式提供密码。

所以,我的建议是将这些行添加到Dockerfile中。

RUN git config --global user.name "your username"
RUN git config --global user.password "your password"