services: app: image: gitea.p4r4dls.ru/yusupal1ev/g2s-aggregator:${IMAGE_TAG} container_name: g2s-aggregator${CONTAINER_SUFFIX} ports: - "${APP_PORT}:8000" depends_on: redis: condition: service_started postgres: condition: service_healthy migrations: condition: service_completed_successfully volumes: - ./config.yaml:/config.yaml restart: unless-stopped logging: driver: "json-file" options: tag: "g2s-aggregator${CONTAINER_SUFFIX}" redis: image: redis:7-alpine container_name: redis${CONTAINER_SUFFIX} command: ["redis-server", "--save", "", "--appendonly", "no"] ports: - "${REDIS_PORT}:6379" restart: unless-stopped postgres: image: postgres:16-alpine container_name: postgres${CONTAINER_SUFFIX} environment: POSTGRES_DB: g2s_aggregator POSTGRES_USER: ${POSTGRES_USER} POSTGRES_PASSWORD: ${POSTGRES_PASSWORD} ports: - "${POSTGRES_PORT}:5432" volumes: - postgres:/var/lib/postgresql/data healthcheck: test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER} -d g2s_aggregator"] interval: 5s timeout: 3s retries: 10 migrations: image: gitea.p4r4dls.ru/yusupal1ev/g2s-aggregator:${IMAGE_TAG} container_name: g2s-aggregator-migrations${CONTAINER_SUFFIX} depends_on: postgres: condition: service_healthy volumes: - ./config.yaml:/config.yaml command: ["poetry", "run", "alembic", "upgrade", "head"] restart: "no" logging: driver: "json-file" options: tag: "g2s-aggregator-migrations${CONTAINER_SUFFIX}" waybill-poller: image: gitea.p4r4dls.ru/yusupal1ev/g2s-aggregator:${IMAGE_TAG} container_name: g2s-aggregator-waybill-poller${CONTAINER_SUFFIX} depends_on: postgres: condition: service_healthy migrations: condition: service_completed_successfully volumes: - ./config.yaml:/config.yaml command: ["poetry", "run", "python", "-m", "app.workers.waybill_poller"] restart: unless-stopped logging: driver: "json-file" options: tag: "g2s-aggregator-waybill-poller${CONTAINER_SUFFIX}" waybill-email-sender: image: gitea.p4r4dls.ru/yusupal1ev/g2s-aggregator:${IMAGE_TAG} container_name: g2s-aggregator-waybill-email-sender${CONTAINER_SUFFIX} depends_on: postgres: condition: service_healthy migrations: condition: service_completed_successfully volumes: - ./config.yaml:/config.yaml command: ["poetry", "run", "python", "-m", "app.workers.waybill_email_sender"] restart: unless-stopped logging: driver: "json-file" options: tag: "g2s-aggregator-waybill-email-sender${CONTAINER_SUFFIX}" otel-collector: image: otel/opentelemetry-collector-contrib:latest container_name: otel-collector${CONTAINER_SUFFIX} user: "0" environment: ENV_NAME: ${ENV_NAME} volumes: - ./otel-collector-config.yaml:/etc/otel-collector-config.yaml - /var/lib/docker/containers:/var/lib/docker/containers:ro - /var/run/docker.sock:/var/run/docker.sock:ro restart: unless-stopped command: ["--config=/etc/otel-collector-config.yaml"] volumes: postgres: