version: '3.8' services: garminsync: build: context: ./GarminSync/backend dockerfile: Dockerfile ports: - "8001:8001" volumes: - ./GarminSync/backend:/app environment: - API_PORT=8001 - CENTRAL_DB_URL=http://central_db:8000 command: uvicorn src.main:app --host 0.0.0.0 --port 8001 --reload depends_on: - central_db networks: - fittrack-network reportgenerator: build: context: ./ReportGenerator dockerfile: Dockerfile ports: - "8002:8002" environment: - API_PORT=8001 - CENTRAL_DB_URL=http://central_db:8000 command: uvicorn src.main:app --host 0.0.0.0 --port 8002 --reload depends_on: - central_db networks: - fittrack-network webui: build: context: WebUI/frontend dockerfile: Dockerfile ports: - "3000:80" depends_on: - central_db networks: - fittrack-network central_db: build: context: ./CentralDB dockerfile: Dockerfile ports: - "8000:8000" environment: - GARMIN_CREDENTIALS_ENCRYPTION_KEY=_dbk9p2Rs2p6fx9fHD6x9wy_vr_t723JGhgzALIoE8E= volumes: - central_db_data:/app/data # Add this line to persist data networks: - fittrack-network volumes: central_db_data: # Define the named volume networks: fittrack-network: driver: bridge