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

Переменные приложения в Docker

Переменные приложения задают в окружении сервиса, и скрипт читает их при старте. Строка в описании службы попадает в os.environ и меняет ответ без пересборки образа, если код уже внутри шаблона.

Скрипт читает SITE и отдаёт это слово телом ответа на порту 8000:

import os from http.server import BaseHTTPRequestHandler, HTTPServer class Handler(BaseHTTPRequestHandler): def do_GET(self): self.send_response(200) self.end_headers() self.wfile.write(os.environ['SITE'].encode()) if __name__ == '__main__': HTTPServer(('0.0.0.0', 8000), Handler).serve_forever()

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

FROM python:3.14 WORKDIR /app COPY requirements.txt . RUN pip install -r requirements.txt COPY app.py . CMD ["python", "app.py"]

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

services: app: build: . ports: - "8080:8000" environment: SITE: demo

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

docker compose up -d --build

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

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

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