docs/docker-compose.test.yml
markov 7fcf4abed9 feat: isolated test infra — docker-compose.test.yml + test.sh
- Отдельная PostgreSQL в tmpfs (RAM)
- Отдельный Tracker на порту 8101
- Полная изоляция от прода
- ./test.sh для запуска
2026-03-14 10:28:11 +01:00

46 lines
1.5 KiB
YAML

# Тестовое окружение Team Board
# Поднимает полный стек на изолированной БД и портах.
#
# Использование:
# ./test.sh — поднять, прогнать тесты, убить
# docker compose -f docker-compose.test.yml up -d — поднять вручную
# docker compose -f docker-compose.test.yml down -v — убить
#
# Порты (тестовые):
# Tracker API: 8101
# PostgreSQL: 5433 (изолированный)
services:
db-test:
image: postgres:16-alpine
environment:
POSTGRES_DB: team_board_test
POSTGRES_USER: team_board
POSTGRES_PASSWORD: team_board
ports:
- "5433:5432"
tmpfs:
- /var/lib/postgresql/data # RAM-диск — быстро, дропается при down
healthcheck:
test: ["CMD-SHELL", "pg_isready -U team_board -d team_board_test"]
interval: 1s
timeout: 3s
retries: 15
tracker-test:
build: ./tracker
ports:
- "8101:8100"
environment:
TRACKER_DATABASE_URL: postgresql+asyncpg://team_board:team_board@db-test:5432/team_board_test
TRACKER_ENV: dev
TRACKER_JWT_SECRET: test-secret
depends_on:
db-test:
condition: service_healthy
healthcheck:
test: ["CMD-SHELL", "python3 -c \"import socket; s=socket.create_connection(('localhost',8100),2); s.close()\""]
interval: 2s
timeout: 3s
retries: 15