services: smb-db: image: postgres:16-alpine container_name: smb-db restart: unless-stopped environment: POSTGRES_DB: smbcrm POSTGRES_USER: smbcrm POSTGRES_PASSWORD: ${DB_PASSWORD} volumes: - smb-db-data:/var/lib/postgresql/data - ./db/init.sql:/docker-entrypoint-initdb.d/init.sql:ro networks: [smb-net] healthcheck: test: ["CMD-SHELL", "pg_isready -U smbcrm -d smbcrm"] interval: 10s timeout: 5s retries: 5 smb-crm: build: ./app container_name: smb-crm restart: unless-stopped environment: DATABASE_URL: postgresql://smbcrm:${DB_PASSWORD}@smb-db:5432/smbcrm CRM_API_TOKEN: ${CRM_API_TOKEN} ICS_TOKEN: ${ICS_TOKEN} SHEET_ID: ${SHEET_ID} GOOGLE_SA_JSON: /run/secrets/gcp-sa.json volumes: - ./secrets/gcp-sa.json:/run/secrets/gcp-sa.json:ro depends_on: smb-db: condition: service_healthy networks: [smb-net, proxy] volumes: smb-db-data: networks: smb-net: proxy: external: true