Запись ключа в Docker
Запись ключа из приложения сохраняет строку на сервере, и её можно прочитать клиентом сервера.
Скрипт кладёт
значение hello
под ключ msg
и сразу завершается.
Образ и зависимости
те же, что при проверке связи.
Файл app.py
открывает клиент
по адресу из окружения
и выполняет запись:
import os
import redis
host = os.environ["REDIS_HOST"]
port = int(os.environ["REDIS_PORT"])
client = redis.Redis(
host=host,
port=port,
password="demo",
)
client.set("msg", "hello")
Шаги сборки
в Dockerfile
без изменений:
FROM python:3.14
WORKDIR /app
COPY requirements.txt .
RUN pip install -r requirements.txt
COPY app.py .
CMD ["python", "app.py"]
Сервисы db
и app
в compose.yaml
остаются как раньше:
services:
db:
image: redis:8
command: ["--requirepass", "demo"]
volumes:
- dbdata:/data
app:
build: .
environment:
REDIS_HOST: db
REDIS_PORT: "6379"
volumes:
dbdata:
После пересборки скрипт один раз запишет ключ и остановится. Выполним запуск с пересборкой:
docker compose up -d --build
Чтение из копии сервера
подтверждает запись.
Пароль передают
отдельным флагом,
затем читают ключ msg:
docker compose exec db redis-cli -a demo GET msg
Настройте сервис note так, чтобы он записал строку ready под ключ mark на сервер db и завершил работу.
Прочитайте ключ mark из копии сервера с учебным паролем и отметьте совпадение текста ready.