如何加速将 Git Repo 克隆到 Docker 容器中?

How to speed up clone of a Git Repo into Docker Container?

我在 Docker 文件中使用了来自外部 Python 存储库的一些代码。

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

我怎样才能让所有这些代码在 Docker 容器中是 (A) 可访问的; (B) 比 git clone 快得多; (C) 在存储库中获取最近的代码更改?

在我开始创建 private Python package repository 之前,我想确保我实施的解决方案能够很好地与 Docker 和上述所有因素配合使用。

如果您希望将最近的代码更改提取到现有容器中,容器中确实没有解决 运行 git clone 的方法,因此您可以稍后 git pull.

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

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

By providing an argument of --depth 1 to the clone command, the process will copy only the latest revision of everything in the repository. This can be a lifesaver for Git servers that might otherwise be overwhelmed by CI/CD (Continuous Integration / Continuous Delivery) automation.

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