meldestelle/dc-gui.yaml

50 lines
1.6 KiB
YAML

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"
healthcheck:
test: [ "CMD", "wget", "--spider", "-q", "http://localhost:4000/" ]
interval: 20s
timeout: 5s
retries: 5
start_period: 20s
networks:
meldestelle-network:
aliases:
- "web-app"
profiles: [ "gui", "all" ]
networks:
meldestelle-network:
driver: bridge