Обычно вы не запускаете инструменты управления исходным кодом из Dockerfile. Проверьте их в каталоге хоста (еще лучше, если вы можете управлять им, добавьте Dockerfile
непосредственно в репозиторий, который вы пытаетесь создать) и запустите docker build
со всеми его входами непосредственно на диске.
Для этого есть несколько веских причин:
Кэширование изображений Docker часто может означать, что Docker не будет повторять операции типа «клон», «оформить заказ» или «вытянуть»: он знает, что это было сделано один раз, и уже знает его вывод и пропускает шаг, даже если есть новые коммиты, которых у вас нет.
Добавление инструментов, таких как svn
или git
, к изображению, которое вам нужно только создать, делает его излишне большим. (Многоступенчатые сборки могут этого избежать, но они относительно новые.)
Более распространенным вариантом использования этого является клонирование частного хранилища, для которого требуются учетные данные, и трудно избежать утечки этих учетных данных в окончательное изображение. (Опять же, многоэтапные сборки могут избежать этого, с некоторой осторожностью, но лучше вообще не подвергаться защите.)