Свой образ в Docker
Свой образ кладёт файл сценария
внутрь шаблона,
и том с компьютера для страницы
больше не нужен.
Файл index.php
попадает в слой образа
на этапе docker build
и живёт вместе с php:8.5.
Сценарий по-прежнему печатает
hello.
Шаблон в Dockerfile
задаёт базу, копирование
и команду встроенного сервера:
FROM php:8.5
COPY index.php /var/www/html/index.php
CMD ["php", "-S", "0.0.0.0:8000", "-t", "/var/www/html"]
Рядом с шаблоном лежит
тот же index.php
для шага COPY:
<?php
echo 'hello';
Сервис собирается из текущей
папки, без готового имени
образа в строке image.
Порт 8000
публикуем наружу,
том для кода не указываем.
Файл compose.yaml:
services:
web:
build: .
ports:
- "8000:8000"
Подъём в фоне сам вызовет
сборку, затем создаст контейнер
из свежего шаблона.
Страница по адресу
localhost:8000
снова покажет слово hello.
Запуск проекта:
docker compose up -d --build
Соберите сервис home из Dockerfile на php:8.5 с ответом home и парой портов 8002 и 8000.
Проверьте текст страницы по localhost:8002.