services: client: container_name: client hostname: client build: context: . dockerfile: Dockerfile.client env_file: - ./.env environment: - PRODUCTION=${PRODUCTION:-false} ports: - "3456:3000" restart: no volumes: - ./client:/client:rw - ./dev-keys:/keys:ro # So the frontend entrypoint can check for SSL files networks: - ai-voicebot-net server: container_name: server hostname: server build: context: . dockerfile: Dockerfile.server env_file: - ./.env environment: - PRODUCTION=${PRODUCTION:-false} restart: always ports: - "8001:8000" volumes: - ./shared:/shared:ro - ./server:/server:rw - ./server/.venv:/server/.venv:rw - ./client/build:/client/build:ro - ./dev-keys:/keys:ro networks: - ai-voicebot-net ai-voicebot: container_name: ai-voicebot hostname: ai-voicebot build: context: . dockerfile: Dockerfile.voicebot env_file: - ./.env environment: - PRODUCTION=${PRODUCTION:-false} restart: always network_mode: host volumes: - ./cache:/root/.cache:rw - ./shared:/shared:ro - ./voicebot:/voicebot:rw - ./voicebot/.venv:/voicebot/.venv:rw # network_mode: host # networks: # - ai-voicebot-net networks: ai-voicebot-net: driver: bridge