
В данной статье я расскажу о своём опыте «заворачивания» Laravel-приложения в Docker-контейнер да так, что бы и локально с ним могли работать frontend и backend разработчики, и запуск его на production был максимально прост. Так же CI будет автоматически запускать статические анализаторы кода, phpunit-тесты, производить сборку образов.
«А в чём, собственно, сложность?» — можешь сказать ты, и будешь отчасти прав. Дело в том, что этой теме посвящено довольно много обсуждений в русскоязычных и англоязычных комьюнити, и почти все изученные треды я бы условно разделил на следующие категории:
- «Использую докер для локальной разработки. Ставлю laradock и беды не знаю». Круто, но как обстоят дела с автоматизацией и запуском на production?
- «Собираю один контейнер (монолит) на базе
fedora:latest(~230 Mb), ставлю в него все сервисы (nginx, бд, кэш, etc), запускаю всё супервизором внутри». Тоже отлично, прост в запуске, но как на счёт идеологии «один контейнер — один процесс»? Как обстоят дела с балансировкой и управлением процессами? Как же размер образа? - «Вот вам куски конфигов, приправляем выдержками из sh-скриптов, добавим магических env-значений, пользуйтесь». Спасибо, но как же на счёт хотя бы одного живого примера, который я бы мог форкнуть и полноценно поиграться?
Всё, что ты прочитаешь ниже — является субъективным опытом, который не претендует быть истиной в последней инстанции. Если у тебя будут дополнения или указания на неточности — welcome to comments.
Для нетерпеливых — ссылка на репозиторий, склонировав который ты сможешь запустить Laravel-приложение одной командой. Так же не составит труда его запустить на том же rancher, правильно «слинковав» контейнеры, или использовать продуктовый вариант
docker-compose.ymlкак отправную точку.
Читать дальше →
Docker + Laravel = ❤
Source: habrahabr

