48 lines
976 B
YAML
48 lines
976 B
YAML
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:
|
|
container_name: etl_pipeline
|
|
image: etl-pipeline
|
|
build: .
|
|
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: |