Как реализовать gitlab ci использую docker-compose?

Не dev-ops, но встала задача написать систему непрерывной интеграции проекта с гитлабом. Проект собирается через docker-compose. Цель задачи - чтобы на выходе автоматически собирались докер образы, которые можно было развернуть на сервере, пока что без тестирования и даже без cd (вручную обновлять запущенные контейнеры на сервере).

Не очень уверен в стратегии реализации этой задачи. Все образы хранить в gitlab docker registry? Ведь у docker-compose зависимых контейнеров может быть несколько: база-данных, бэкэнд, вебсокет-сервер и т.д.
Как в gitlab registry их связать друг с другом, чтобы одной командой можно было на серваке запустить. Или тут без автоматического cd не обойтись?

Был бы очень рад, если поделитесь как обычно данные задачи делаются в общем. Также был бы рад за полезные ссылки. Буду и сам гуглить еще, но обратился за помощью т.к. время поджимает.
  • Вопрос задан
  • 426 просмотров
Решения вопроса 1
Если кратко то как то так.

1. Образы БД брать из офф репозитория, подкидывать только файлы конфигурации если требуются через docker-compose.
2. Образ приложения собирать либо на шаред раннерах, либо на своём раннере.
3. Собранный образ пушить в репозиторий гитлаба.
4. На сервере куда деплоить поставить гитлаб раннер, привязать к нему тэг.
5. В докер композ указать в качестве имаджа репозиторий гитлаба/имяобраза:тэг
6. В gitlab ci добавить 2 стейджа. 1 это сборка и пуш докер образов, 2 это выполнение на установленном раннере docker-compose up -d
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы