В настоящее время у меня есть новая настройка сервера, где у меня работает Docker. Я использую Gitlab CI для создания и отправки новых изображений. Я просто не могу определить, как развернуть / настроить файлы моего проекта и образы докеров.
Чтобы понять мою ситуацию, представьте себе проект PHP со следующей структурой папок
- система
- ЦСИ
- общественности
- пользователи
- добавления
Это вымышленная структура, но она отражает ситуацию, когда все, кроме папки загрузки, содержит PHP-скрипты.
Теперь я мог бы использовать отдельный образ nginx и php для запуска этого проекта или одно изображение, содержащее оба этих сервиса.
Тем не менее, именно здесь появляются мои вопросительные знаки. Какой подход я должен выбрать? Так как:
- Создание изображений nginx и php дублирует файлы моего проекта на обоих изображениях, создавая изображения размером 2x100 Мб. Sidenote: загружаемые файлы будут смонтированы с хост-системы.
- Создание одного образа с обоими службами должно устранить вышеперечисленное, но сопряжено с другими проблемами, например ведением журнала и управлением службами.
- Создание контейнера данных также позволило бы разрешить 2 размера изображения и устранить проблемы из пункта 2, но это считается плохой практикой.
- Согласно документации я должен использовать тома данных на хосте для обмена данными между контейнерами. Это исключило бы контейнер данных, но мне нужно было бы, чтобы процесс сборки также развернул файлы проекта на общем томе данных, что, я думаю, я бы предпочел не иметь, так как это несколько отрицательно сказывается на цели наличия контейнеров.
- Я также не вижу, как предыдущий пункт (пункт 4, чтобы быть точным) должен работать / быть настроенным. Будет ли у меня шаг сборки в Gitlab, который создает том и копирует все файлы проекта на том, чтобы потом смонтировать его в контейнеры php и nginx?
Кроме того, я просто запускаю docker на своем сервере, так как мне не нужны такие решения, как Kubernetes или Rancher.