42 lines
1.7 KiB
YAML
42 lines
1.7 KiB
YAML
# Локальный «клон прода» в контейнере — для проверки прод-сборки на своей машине
|
||
# (а не на Raspberry Pi). Тот же образ, что и прод, но изолированные тома, единый .env
|
||
# и порт 8080 (чтобы не конфликтовать с dev-uvicorn на :8000).
|
||
#
|
||
# Обычно запускается лаунчером при APP_ENV=test (run.ps1 / run.sh). Вручную:
|
||
# docker compose -f docker-compose.test.yml up --build -d
|
||
# Открыть: http://localhost:8080 (Swagger: /api/docs)
|
||
# Остановить и стереть данные: docker compose -f docker-compose.test.yml down -v
|
||
services:
|
||
app:
|
||
build: .
|
||
image: forbidden-stars:test
|
||
container_name: forbidden-stars-test
|
||
restart: "no"
|
||
init: true
|
||
env_file:
|
||
- .env # единый .env (тот же, что у dev/prod); секреты не в git
|
||
environment:
|
||
# Окружение test: прод-клон, но отличимый от прода (см. config.is_test).
|
||
# Форсим здесь, чтобы значение не зависело от APP_ENV внутри .env.
|
||
APP_ENV: test
|
||
ports:
|
||
- "8080:8000"
|
||
volumes:
|
||
- db-data-test:/data # изолированные тестовые данные
|
||
- uploads-data-test:/data/uploads
|
||
healthcheck:
|
||
test:
|
||
- CMD
|
||
- python
|
||
- -c
|
||
- "import urllib.request; urllib.request.urlopen('http://localhost:8000/api/health')"
|
||
interval: 30s
|
||
timeout: 5s
|
||
retries: 3
|
||
start_period: 40s
|
||
mem_limit: 512m
|
||
|
||
volumes:
|
||
db-data-test:
|
||
uploads-data-test:
|