106 lines
3.3 KiB
YAML
106 lines
3.3 KiB
YAML
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: ["uv", "run", "--no-sync", "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: ["uv", "run", "--no-sync", "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:
|
|
["uv", "run", "--no-sync", "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:
|