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

Скрытое приложение в Docker

Приложение без опубликованного порта открывается только через прокси. Строка ports есть только у web, а сервис app слушает 8000 лишь для соседей в сети проекта. С компьютера на этот номер не к чему подключиться.

Каталог app отдаёт страницу со словом hello:

<!DOCTYPE html> <html lang="ru"> <head> <meta charset="UTF-8"> <title>page</title> </head> <body> hello </body> </html>

Nginx проксирует корень на имя сервиса. Содержимое default.conf:

server { listen 80; location / { proxy_pass http://app:8000; } }

Сервис web на nginx:1.30 публикует 8080:80 и монтирует конфиг. У app нет ключа ports - это и есть скрытый режим. Файл compose.yaml:

services: web: image: nginx:1.30 ports: - "8080:80" volumes: - "$PWD/default.conf:/etc/nginx/conf.d/default.conf" app: image: python:3.14 volumes: - "$PWD/app:/app" working_dir: /app command: ["python", "-m", "http.server", "8000", "--bind", "0.0.0.0"]

После подъёма в фоне страница по localhost:8080 показывает hello, а прямой заход на 8000 хоста не откроет приложение. Запуск проекта:

docker compose up -d

Соберите сервис land с прокси на app так, чтобы порт приложения не публиковался на компьютер, и отдайте слово hidden на 8094 компьютера.

Проверьте, что страница открывается через Nginx и что отдельная публикация порта приложения в описании проекта отсутствует.

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