Адрес сервера в Docker
Адрес сервера - имя сервиса db и порт 6379, его кладут в переменную окружения.
Внутри сети проекта
имя db
указывает на копию сервера,
а порт 6379
совпадает с портом
по умолчанию у Redis.
Скрипт читает значения
из окружения,
а не зашивает адрес
в код.
Файл app.py
печатает пару
для проверки связки:
import os
host = os.environ["REDIS_HOST"]
port = os.environ["REDIS_PORT"]
print(host, port)
Образ копирует скрипт
и запускает его
в exec-форме.
Шаги Dockerfile
такие:
FROM python:3.14
WORKDIR /app
COPY app.py .
CMD ["python", "app.py"]
Сервис app
получает блок environment
с именем хоста
и номером порта.
Сервер db
без изменений.
Файл compose.yaml:
services:
db:
image: redis:8
command: ["--requirepass", "demo"]
volumes:
- dbdata:/data
app:
build: .
environment:
REDIS_HOST: db
REDIS_PORT: "6379"
volumes:
dbdata:
После пересборки
в логах приложения
должны появиться
строки db
и 6379.
Выполним запуск с пересборкой:
docker compose up -d --build
Переименуйте сервис приложения в note и задайте для него те же переменные окружения с именем db и портом 6379.
Пересоберите проект и отметьте в логах сервиса note совпадение пары адреса с учебным сервером.