如何加速将 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
语句也可以工作。
我在 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
语句也可以工作。