version: "3.9" services: db: image: postgres:16-alpine container_name: money-agents-db environment: POSTGRES_USER: ${POSTGRES_USER:-postgres} POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:[credential removed]} POSTGRES_DB: ${POSTGRES_DB:-money} ports: - "${PG_PORT:-5432}:5432" volumes: - dbdata:/var/lib/postgresql/data db_migrate: image: postgres:16-alpine container_name: money-agents-db-migrate depends_on: - db environment: PGPASSWORD: ${POSTGRES_PASSWORD:[credential removed]} POSTGRES_USER: ${POSTGRES_USER:-postgres} POSTGRES_DB: ${POSTGRES_DB:-money} volumes: - ./sql:/sql:ro entrypoint: ["/bin/sh","-lc"] command: >- 'until pg_isready -h db -U "$POSTGRES_USER" -d "$POSTGRES_DB" -t 2; do echo waiting for db; sleep 1; done && psql -h db -U "$POSTGRES_USER" -d "$POSTGRES_DB" -f /sql/init.sql' dashboard: build: . image: money-agents:local container_name: money-agents-dashboard environment: DATABASE_URL: ${DATABASE_URL:-postgres://postgres:postgres@db:5432/money} PORT: "8080" depends_on: - db - db_migrate ports: - "${PORT:-8080}:8080" worker: image: money-agents:local container_name: money-agents-worker depends_on: - db - db_migrate command: ["python", "/app/worker.py"] environment: DATABASE_URL: ${DATABASE_URL:-postgres://postgres:postgres@db:5432/money} LOGS_DIR: /var/log/money_agents volumes: - workerlogs:/var/log/money_agents volumes: dbdata: {} workerlogs: {}