l3ftoverz
@l3ftoverz
Люблю Финский металкор и ищу работу.

Как делается «production» среда при использовании докера?

Взял я например docker-compose, поднял всё, что мне нужно и всё работает, но по-сути я создал среду для разработки, она не подходит для продашкна. Логично что на продакшне мне нужен автобилд файлов при изменении, лайв релоад и ещё мелочи всякие. (Да и вообще, мне не нужна нода на продакшне)

Для боя я должен описать другой docker-compose.yml? На какой стадии должен происходить билд проекта? (npm install, npm run build, composer install). Я наверное сейчас уже перехожу к вопросам про CI\CD и оно мне тоже интересно.

Я вижу всё примерно так:
Написать простой баш скриптик, который буду запускать на сервере, он будет вытягивать с GIT код, далее он запустит контейнеры с node и composer, которые соберут все зависимости, а далее уже поднимаю контейнеры с nginx, php, mysql, которые монтируют собранный проект.

Верны ли мои мысли?
  • Вопрос задан
  • 2132 просмотра
Решения вопроса 4
qlkvg
@qlkvg
python backend developer
Не совсем по теме, но близко. Если есть желание влезть в ci/cd, то посмотрите в сторону gitlab. Там для старта есть все необходимое. Вместо баш скриптов - gitlab runner на сервере, который триггерится либо вручную, либо по пушам/мержам. Вместо сборки образов на сервере - гитлабовский registry. Сам не так давно обратил внимание на него, в ближайшее время планировал попробовать.
Ответ написан
@metajiji
Задача простая, использовать в dev, stage и prod один и тот же код. Докер это инструмент, который позволит этого достичь.
При комите собирается образ с кодом, проходит тестирование на всех стадиях, после чего попадает в продакшн в том виде в котором собрался изначально это гарантирует одинаковое поведение кода во всех окружениях.
Если в образе stateful приложение, то через env переменные необходимо передать необходимые настройки, а данные, которые генерирует приложение внутри контейнера аккуратно уложить в volume.
Ответ написан
inf
@inf
DevOps Engineer
От оркестратора зависит, чем вы будете крутить докеры? Compose, Swarm, Kubernetes...
Если у вас docker-compose, то значит надо билдить приложение в докеры. Как минимум так https://docs.gitlab.com/ee/ci/docker/using_docker_...
Следующим этапом говорить оркестратору "обнови докеры". Если композ то пинать по ssh файл docker-compose.yml Так же выполняется в gitlab ci например.

ps лучше сразу юзать более приспособленный swarm для production. Он умеет скалировать и другие фишки.
Ответ написан
@vanillathunder
Отдельный docker-compose.dev.yml и для прода docker-compose.yml, когда код вытягивается из git делается сборка контейнера и compose прописаны команды необходимые, типа npm install
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
Платформа НТИ Москва
от 160 000 до 190 000 ₽
от 80 000 до 120 000 ₽
от 100 000 до 200 000 ₽
01 июн. 2020, в 11:31
1000 руб./за проект
01 июн. 2020, в 11:14
30000 руб./за проект
01 июн. 2020, в 10:54
500 руб./в час