# Тестовое окружение 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