Код на хосте в Docker
Код на хосте лежит в папке проекта, и правка файла видна серверу без новой сборки образа. Привязка каталога с компьютера заменяет отдельный том для одного файла и держит весь сайт рядом с описанием Compose.
Папка site на диске
содержит index.php
со словом hello.
Сценарий такой:
<?php
echo 'hello';
Слева в записи тома -
относительный путь ./site,
справа - корень документов
/var/www/html
внутри копии.
Встроенный сервер и порт
8000 остаются как
в примере с одним файлом.
Файл compose.yaml:
services:
web:
image: php:8.5
ports:
- "8000:8000"
volumes:
- ./site:/var/www/html
command: ["php", "-S", "0.0.0.0:8000", "-t", "/var/www/html"]
После подъёма в фоне
страница по адресу
localhost:8000
снова покажет hello.
Изменение текста в
site/index.php
достаточно обновить
в браузере -
перезапуск контейнера
для этого не нужен.
Запуск проекта:
docker compose up -d
Опишите сервис lab с папкой ./public в /var/www/html и ответом lab на порту 8000.
Измените текст в смонтированном файле, обновите страницу и сравните результат с файлом на диске.