Изучение нескольких методов запуска PHP-приложений с помощью Docker Compose

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.

Не забудьте выбрать метод, который лучше всего соответствует требованиям вашего приложения. Удачной контейнеризации!