Многие из вас уже, вероятно, успели написать свое первое приложение и даже разместить его на хостинге, поэтому вам знакомы трудности с тем, чтобы установить веб-сервер, настроить базу данных, и это если вам не нужны дополнительные инструменты, такие как поисковые движки, NoSQL базы данных, системы очередей и многое другое. Разумеется, для локальной разработки существует готовое ПО, например, OpenServer, но они, как правило, достаточно тяжелые и предоставляют много дополнительных опций, которыми вы не пользуетесь.
В этой статье поговорим о Docker и о том, как развернуть приложение Symfony в контейнере.
Наверняка многие из вас уже слышали про Docker, однако я все равно приведу популярное определение для тех, кто только с ним знакомится:
Docker – это программная платформа для быстрой разработки, тестирования и развертывания приложений. Docker упаковывает ПО в стандартизованные блоки, которые называются контейнерами. Каждый контейнер включает все необходимое для работы приложения: библиотеки, системные инструменты, код и среду исполнения.
Итак, существует два основных определения - образ и контейнер. Образ - это иммутабельный (неизменяемый) шаблон, на базе которого строятся контейнеры, внутри которого запускаются ваши сервисы: веб-сервер, база данных, php-fpm и так далее. Образ содержит легковесную (не всегда) операционку, необходимые расширения и утилиты для создания контейнера.
Для развертывания Symfony приложения нам понадобятся 4 контейнера: nginx, php-fpm, php-cli и mysql. Для создания образа будем использовать Dockerfile, а для развертывания - docker-compose.