我从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和以上所有因素都可以很好地结合使用。
答案 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
语句也可以工作。