version: '3.8' services: # Тестовая база данных postgres_test: image: postgres:17-alpine container_name: postgres_test environment: POSTGRES_DB: smartsoltech_test POSTGRES_USER: postgres POSTGRES_PASSWORD: postgres POSTGRES_HOST_AUTH_METHOD: trust ports: - "5433:5432" networks: - test_network volumes: - test_pgdata:/var/lib/postgresql/data # Тестовое Django приложение django_test: build: context: . dockerfile: Dockerfile.test container_name: django_test environment: DATABASE_URL: postgresql://postgres:postgres@postgres_test:5432/smartsoltech_test SECRET_KEY: test-secret-key-for-ci-very-long-and-secure-key-12345 DEBUG: "False" ALLOWED_HOSTS: localhost,127.0.0.1,postgres_test,* DJANGO_SETTINGS_MODULE: smartsoltech.settings_test TELEGRAM_BOT_TOKEN: test-token-for-ci depends_on: - postgres_test networks: - test_network command: > sh -c " echo 'Ожидание готовности PostgreSQL...' && until pg_isready -h postgres_test -p 5432 -U postgres; do echo 'Waiting for postgres_test...' && sleep 2; done && echo 'Запуск миграций...' && cd smartsoltech && python manage.py migrate --settings=smartsoltech.settings_test && echo 'Запуск тестов...' && python manage.py test --settings=smartsoltech.settings_test --verbosity=2 " volumes: test_pgdata: networks: test_network: driver: bridge