services: postgres: image: postgres:17-alpine container_name: quote_db environment: POSTGRES_USER: ${DB_USER} POSTGRES_PASSWORD: ${DB_PASSWORD} POSTGRES_DB: ${DB_NAME} volumes: - postgres_data:/var/lib/postgresql/data - ./init.sql:/docker-entrypoint-initdb.d/01-init.sql - ./add_invoices.sql:/docker-entrypoint-initdb.d/02-add-invoices.sql ports: - "5433:5432" healthcheck: test: ["CMD-SHELL", "pg_isready -U quoteuser -d quotes_db"] interval: 10s timeout: 5s retries: 5 restart: unless-stopped app: build: . container_name: quote_app ports: - "3000:3000" environment: NODE_ENV: ${NODE_ENV} DB_HOST: ${DB_HOST} DB_PORT: ${DB_PORT} DB_USER: ${DB_USER} DB_PASSWORD: ${DB_PASSWORD} DB_NAME: ${DB_NAME} # --- NEU: QBO Variablen durchreichen --- QBO_CLIENT_ID: ${QBO_CLIENT_ID} QBO_CLIENT_SECRET: ${QBO_CLIENT_SECRET} QBO_ENVIRONMENT: ${QBO_ENVIRONMENT} QBO_REDIRECT_URI: ${QBO_REDIRECT_URI} QBO_REALM_ID: ${QBO_REALM_ID} QBO_ACCESS_TOKEN: ${QBO_ACCESS_TOKEN} QBO_REFRESH_TOKEN: ${QBO_REFRESH_TOKEN} volumes: - ./public/uploads:/app/public/uploads - ./templates:/app/templates # NEU! depends_on: postgres: condition: service_healthy restart: unless-stopped volumes: postgres_data: