name: "${PROJECT_NAME:-meldestelle}" services: # ========================================== # 3. FRONTEND (UI) # ========================================== # --- WEB-APP --- web-app: image: "${DOCKER_REGISTRY:-git.mo-code.at/mo-code}/web-app:${DOCKER_TAG:-latest}" build: context: . # Wichtig: Root Context für Monorepo Zugriff dockerfile: config/docker/caddy/web-app/Dockerfile args: # Frontend spezifisch: CADDY_VERSION: "${DOCKER_CADDY_VERSION:-2.11-alpine}" # Metadaten: VERSION: "${DOCKER_VERSION:-1.0.0-SNAPSHOT}" BUILD_DATE: "${DOCKER_BUILD_DATE}" labels: - "org.opencontainers.image.created=${DOCKER_BUILD_DATE}" container_name: "${PROJECT_NAME:-meldestelle}-web-app" restart: unless-stopped ports: - "${WEB_APP_PORT:-4000:4000}" environment: # Runtime Configuration — via envsubst in entrypoint.sh in config.json & index.html injiziert. # Muss die öffentlich erreichbare URL sein (Browser-Zugriff!), NICHT localhost. API_BASE_URL: "${WEB_APP_API_URL:-http://localhost:8081}" # Keycloak Public URL (muss vom Browser aus erreichbar sein) KEYCLOAK_URL: "${WEB_APP_KEYCLOAK_URL:-http://localhost:8180}" depends_on: api-gateway: condition: "service_started" networks: meldestelle-network: aliases: - "web-app" profiles: [ "gui", "all" ] networks: meldestelle-network: driver: bridge