Запуск PHP через Docker

Сначала надо создать файл Dockerfile (образ Docker).

FROM php:8.4-apache
COPY ./src /var/www/html/

В коде выше указано, что надо установить образ, в который входят PHP 8.4 и Apache.

Команда COPY копирует файлы из папки «src» в каталог «/var/www/html» внутри контейнера. Данная команда позволяет запускать те PHP-файлы, которые находятся в папке «src».

И файл docker-compose.yml.

version: '3.8'

services:
  web:
    build: .
    ports:
      - "8000:80"

Осталось запустить докер:

docker-compose up --build

Теперь по адресу localhost:8000 будут доступны те файлы, которые находятся в папке «src/».

Ничего дополнительно настраивать не надо, файлы будут открываться через веб-сервер Apache и PHP 8.4.

Обновление файлов

По коду выше, когда надо добавить новые файлы в папку «src», приходится каждый раз перезапускать Докер, чтобы Apache видел новые файлы.

Чтобы автоматизировать процесс, папку «src» можно синхронизировать с папкой «/var/www/html/», которая находится внутри контейнера. Для этого используется параметр volumes.

version: '3.8'

services:
  web:
    build: .
    ports:
      - "8000:80"
    volumes:
      - ./src:/var/www/html

Теперь когда в папке «src» будет добавлен или удалён файл, то это автоматически обновится в самом контейнере (т.е. новые файлы будут доступны в браузере без перезагрузки Докера)