РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
⊗dcPhDvHc 17 of 30 menu
◀ ▶

Правка кода на хосте в Docker

Правка кода на хосте видна странице сразу, потому что оба контейнера читают одну папку проекта. Том связывает каталог на диске с /var/www/html внутри копий. Образы готовые, сборка не нужна.

Сценарий site/index.php печатает слово hello:

<?php echo 'hello';

Nginx принимает браузер на порту 8080:80 и передаёт .php в FPM по имени app и порту 9000. Файл default.conf:

server { listen 80; root /var/www/html; index index.php index.html; location / { try_files $uri $uri/ /index.php?$query_string; } location ~ \.php$ { fastcgi_pass app:9000; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } }

Слева в томе для обоих сервисов - ./site, справа - /var/www/html. Сервис app без ports. Файл compose.yaml:

services: web: image: nginx ports: - "8080:80" volumes: - ./site:/var/www/html - ./default.conf:/etc/nginx/conf.d/default.conf app: image: php:8.5-fpm volumes: - ./site:/var/www/html

После подъёма в фоне localhost:8080 показывает hello. После правки текста в site/index.php достаточно обновить страницу в браузере - перезапуск контейнеров для этого не нужен. Запуск проекта:

docker compose up -d

Опишите сервисы edge и fpm с папкой ./public в /var/www/html и ответом edge на порту 8080.

Измените слово в смонтированном index.php и обновите страницу без пересборки образа.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить