2014-12-31 9 views
5

Мое настоящее понимание заключается в том, что Docker выполняет любые команды RUN git clone во время docker build, и, следовательно, кодовая база для моего приложения «испечена» на изображении Docker.Docker git clone на запуске контейнера?

Как я могу запустить git clone при запуске контейнера?

Или это считается плохой практикой и анти-узором?

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

ответ

5

Общий шаблон проектирования - это клонирование и компиляция вашего проекта в процессе построения образа Docker. Кроме того, вы можете настроить изображение в качестве Docker Automated Build, который определен в Докер документации как:

Automated Сборки являются особенностью Докер Hub, которые позволяют использовать кластеры сборки Docker HUB для автоматического создания изображений из указанный файл Docker и репозиторий GitHub или Bitbucket (или «контекст»). Система клонирует ваш репозиторий и создает образ, описанный Dockerfile, используя репозиторий в качестве контекста. Полученное автоматическое изображение затем будет загружено в реестр Docker Hub и , помеченный как автоматическая сборка.

Автоматическая сборка запускается в любое время, когда вы совершаете фиксацию (и нажатие) в ветке репо, которую вы указываете. Если это слишком часто срабатывает, возможно, вы должны указать на другую ветку.

В любом случае, если вы решили запустить git clone при запуске нового контейнера, вы можете настроить свой файл Docker с помощью CMD ["my-script"], будучи моим скриптом, любым скриптом bash с кодом, который вы хотите.

+0

Это именно то, что мне нужно. Спасибо за совет! – AJB

+0

Как это работает с большой версией кода + длинной проверки? Теперь у нас есть подчиненный VMWare, который обновляет SVN. С докером вы создадите новое изображение докеры с нуля + полную проверку? – RvdK

Смежные вопросы