Как ускорить клон Git Repo в Docker Container? - PullRequest
0 голосов
/ 28 февраля 2019

У меня есть некоторый код из внешнего репозитория Python, который я использую в Dockerfile.

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

Как сделать так, чтобы весь этот код был (A) доступен в контейнере Docker;(B) намного быстрее, чем git clone;(C) подхватить последние изменения кода в репозитории?

Прежде чем идти по пути создания частного репозитория пакетов Python , я хочу быть уверенным, что реализую решение, которое хорошо работаетс докером и факторами во всем вышеперечисленном.

1 Ответ

0 голосов
/ 28 февраля 2019

Если вы хотите, чтобы последние изменения кода были извлечены в существующий контейнер, на самом деле нет способа запустить git clone в контейнере, чтобы вы могли позже git pull.

Если выне нужна вся история, тогда, возможно, git clone --depth 1 ускорит первоначальный клон.

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

Предоставив аргумент --depth 1в команду clone процесс скопирует только самую последнюю ревизию всего в хранилище.Это может быть спасением для серверов Git, которые в противном случае могут быть перегружены автоматизацией CI / CD (Continuous Integration / Continuous Delivery).

Если вы вообще не хотите git в контейнере и вам удобно перестраивать образ, чтобы получить изменения кода, тогда вспомогательный скрипт, который выполняет git archive с хостом,и тогда оператор ADD в Dockerfile тоже сработает.

...