Задать вопрос
e_svirsky
@e_svirsky
Web Developer

Как настроить Docker для deployment-а?

Всем привет.
Подскажите как настроить Docker для deployment-а.
Имеется - сервер на Linux - RedHat, репозиторий на github с PHP проектом на Symfony.
Хочу настроить деплоймент с помощью docker. Контейнеры - nginx, phpfpm, mysql, redis.
Поясните плз вкратце в 2х словах архитектуру. Что будет куда закидываться. Нужен ли дженкинс, или можно обойтись без него.
Ссылки с похожими кейсами приветствуются.

UPD:
Где хранить скрипты деплоймента? В папке самого проекта? Или лучше в отдельную репу поместить...
Как это всё работает? Опишите процесс словами схематично.

Спасибо!
  • Вопрос задан
  • 7054 просмотра
Подписаться 41 Оценить 4 комментария
Решение пользователя Константин Грачев К ответам на вопрос (2)
Preemiere
@Preemiere
Symfony developer
У меня следующая схема.
В репозитории проект в корне лежит Dockerfile, который умеет собирать как прод так и дев версию контейнера.
Для каждого сервиса отдельно в гите свои репозитории. Например у nginx в репе Dockerfile, в котором по сути одна команда - скопировать конфиг.
Redis у меня работает с конфигами по дефолту, так что для него репы нет.
Так же в каждой репе лежит конфиг для Drone, который при отправке коммитов запускает сборку, тестирование и последующий деплой на прод сервер.
Деплоем контейнеров на сервере у меня сейчас занимается Rancher. Но в ближайшее время планирую перейти на Docker Swarm.

Конфиги сборок лежат в гите, кроме параметров.
Параметры для Symfony я передаю через environment при старте контейнеров.
Параметры для сборки зашифрованы в .drone.sec файле. Но в версии 0.5 они будут лежать сразу на сервере.

Docker-compose для прода я не использую, через него поднимается окружение исключительно для дев версии.

Прокидывать папки с хостовой машины не рекомендуется, поэтому для персистентных данных нужно создавать volume и прокидывать их.

При данной схеме на сервер вообще не захожу. Сделал пуш, код протестировался и задеплоился.

Примеры моих конфигов: Dockerfile, drone.yml
Ответ написан