如何加快将Git存储库克隆到Docker容器中的速度?

时间:2019-02-28 17:56:45

标签: python docker dockerfile python-packaging

我从Dockerfile中使用了来自外部Python存储库的一些代码。

RUN git clone ssh://git@foobar.com/sample_repo.git /sample_repo

我如何才能在Docker容器中访问所有这些代码(A); (B)比git clone更快; (C)提取存储库中最近的代码更改?

在我继续创建private Python package repository之前,我想确定我实现的解决方案与Docker和以上所有因素都可以很好地结合使用。

1 个答案:

答案 0 :(得分:1)

如果您希望将最近的代码更改提取到现有容器中,则实际上没有办法在容器中运行git clone,以便稍后使用git pull

如果不需要全部历史记录,那么git clone --depth 1可能会加快初始克隆的速度。

RUN git clone --depth 1 ssh://git@foobar.com/sample_repo.git /sample_repo
  

通过向clone命令提供--depth 1的参数,该过程   将仅复制存储库中所有内容的最新修订版。   这可能是Git服务器的救星,否则可能会   CI / CD(持续集成/持续交付)自动化不堪重负。

如果您根本不希望在容器中使用git,并且愿意重建映像以进行代码更改,那么可以对主机执行git archive的帮助程序脚本,然后ADD中的Dockerfile语句也可以工作。