docker-compose.yml для запуска Apache


В материале приведён файл docker-compose.yml для запуска сервиса apache в Docker — это простейший файл docker-compose, используются volume, файлы приложения пробрасываются в контейнер из каталога src на хосте.


Порт 80 внутри контейнера мапится на внешний порт 8073 хост системы. Порт можно сменить на любой другой. Если установить 80 — сервис будет доступен на порту 80 хост системы. В этом случае Apache в контейнере будет обслуживать запросы, поступающие извне.



docker-compose.yml для запуска Apache и сайта на PHP


Файл docker-compose.yml

version: '3'

services:
  apache:
    image: httpd:2.4
    ports:
      - 8073:80
    volumes:
      - ./src:/usr/local/apache2/htdocs



Структура проекта, каталог, в котором выполняется сборка:

docker-compose.yml для запуска Apache


В данном случае структура самая простая: файл с инструкциями для Docker и каталог src с приложением на PHP.

Конфигурационные файлы внутрь контейнера не копируются, используются стандартные настройки.

Файл index.php, представляющий собой приложение на PHP, размещается в директории /usr/local/apache2/htdocs в контейнере, котором веб-сервер ожидает найти скрипты.



Сборку выполняем командой docker compose up

docker compose up



На скриншоте запуск процесса сборки через docker-compose.yml и результат в виде контейнера с Apache.

docker-compose up для запуска Apache и сайта на PHP


На хост машине процесс займёт порт 8073, процесс можно увидеть с помощью netstat

netstat -nltp | grep 8073


tcp 0 0 0.0.0.0:8073 0.0.0.0:* LISTEN 240205/docker-proxy
tcp6 0 0 :::8073 :::* LISTEN 240209/docker-proxy



На порт, на котором запустился контейнер, можно настроить проксирование запросов через Nginx, установленный на хосте (пример настроек).



По ссылке доступен файл для конфигурации nginx+apache+php-fpm.

Он более сложный чем рассмотренный, но даёт лучшую производительность и скорость работы.

Сказать спасибо