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

Переменные PHP в Docker

Переменные PHP передают сценарию значение, не зашивая его в файл. Строка в описании службы попадает в окружение процесса и меняет ответ без правки index.php на диске, если код уже в образе.

Сценарий читает SITE и печатает его:

<?php echo getenv('SITE');

Файл кладут в образ при сборке. Том для папки проекта здесь не нужен - урок про переменную, а не про монтирование. Файл Dockerfile:

FROM php:8.5-fpm COPY index.php /var/www/html/index.php

Nginx публикует 8080:80 и передаёт запрос в FPM. Файл 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; } }

Сервис app собирается из папки и получает SITE со значением demo. Файл compose.yaml:

services: web: image: nginx ports: - "8080:80" volumes: - ./default.conf:/etc/nginx/conf.d/default.conf app: build: . environment: SITE: demo

После подъёма в фоне страница покажет слово demo без правки файла в образе. Запуск проекта:

docker compose up -d --build

Задайте сервису tag переменную LABEL со значением tag и отдайте её текстом страницы на порту 8080.

Сверьте адрес localhost:8080 с заданным значением переменной.

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