Docker Compose – популярный инструмент, который позволяет разработчикам создавать многоконтейнерные приложения и управлять ими. В этой статье мы рассмотрим различные методы запуска PHP-приложений с помощью Docker Compose. Мы предоставим примеры кода для каждого метода, чтобы помочь вам быстро приступить к работе.
Метод 1: одиночный PHP-контейнер
Самый простой подход — создать один PHP-контейнер, используя официальный образ PHP из Docker Hub. Вот пример файла docker-compose.yml
:
version: '3'
services:
php:
image: php:latest
volumes:
- ./app:/var/www/html
ports:
- "8080:80"
Метод 2: PHP с Nginx
Если вашему PHP-приложению требуется веб-сервер, такой как Nginx, вы можете объединить контейнеры PHP и Nginx. Вот пример файла docker-compose.yml
:
version: '3'
services:
php:
image: php:latest
volumes:
- ./app:/var/www/html
nginx:
image: nginx:latest
volumes:
- ./nginx.conf:/etc/nginx/conf.d/default.conf
ports:
- "8080:80"
depends_on:
- php
Метод 3: PHP с MySQL
Для приложений, которым требуется база данных, вы можете добавить контейнер MySQL. Вот пример файла docker-compose.yml
:
version: '3'
services:
php:
image: php:latest
volumes:
- ./app:/var/www/html
nginx:
image: nginx:latest
volumes:
- ./nginx.conf:/etc/nginx/conf.d/default.conf
ports:
- "8080:80"
depends_on:
- php
mysql:
image: mysql:latest
environment:
- MYSQL_ROOT_PASSWORD=secret
- MYSQL_DATABASE=myapp
- MYSQL_USER=myuser
- MYSQL_PASSWORD=mypassword
Метод 4: PHP с Redis
Если вашему PHP-приложению требуется уровень кэширования, вы можете включить контейнер Redis. Вот пример файла docker-compose.yml
:
version: '3'
services:
php:
image: php:latest
volumes:
- ./app:/var/www/html
nginx:
image: nginx:latest
volumes:
- ./nginx.conf:/etc/nginx/conf.d/default.conf
ports:
- "8080:80"
depends_on:
- php
redis:
image: redis:latest
Docker Compose обеспечивает гибкость и простоту использования при запуске PHP-приложений в контейнерной среде. В этой статье мы рассмотрели несколько методов: от базового одного PHP-контейнера до более сложных настроек с дополнительными сервисами, такими как Nginx, MySQL и Redis. Эти примеры должны стать хорошей отправной точкой для использования возможностей Docker Compose для ваших нужд разработки PHP.
Не забудьте выбрать метод, который лучше всего соответствует требованиям вашего приложения. Удачной контейнеризации!