name: etl-and-db services: db: container_name: postgres_db image: postgres:18.0-trixie networks: - backend expose: - "5432" ports: - "8081:5432" shm_size: 128mb environment: - POSTGRES_PASSWORD=${DB_PASSWORD} - POSTGRES_USER=${DB_USER} - POSTGRES_DB=${DB_NAME} volumes: - postgres_data:/var/lib/postgresql healthcheck: test: ["CMD", "pg_isready", "-U", "etl_agent", "-d", "LMS-Test"] interval: 30s retries: 3 start_period: 30s timeout: 10s restart: always etl: image: etl-pipeline:0.3 depends_on: - db networks: - backend command: "python3 ./src/orchestrator.py" restart: no volumes: - postgres_data:/var/lib/etl pre_stop: - command: docker cp CONTAINER:/var/lib/etl/lms-etl.log /tmp/app_logs networks: backend: name: pg_network volumes: postgres_data: