upgrade(docker)
This commit is contained in:
@@ -0,0 +1,97 @@
|
||||
# ===================================================================
|
||||
# Docker Compose - Client Applications
|
||||
# Meldestelle Project - Client Layer Configuration
|
||||
# ===================================================================
|
||||
# Usage:
|
||||
# Development: docker-compose -f docker-compose.yml -f docker-compose.services.yml -f docker-compose.clients.yml up
|
||||
# Production: docker-compose -f docker-compose.prod.yml -f docker-compose.services.yml -f docker-compose.clients.yml up
|
||||
# Clients only: docker-compose -f docker-compose.clients.yml up
|
||||
# ===================================================================
|
||||
|
||||
version: '3.8'
|
||||
|
||||
services:
|
||||
# ===================================================================
|
||||
# Web Application (Kotlin Multiplatform Client)
|
||||
# ===================================================================
|
||||
web-app:
|
||||
build:
|
||||
context: .
|
||||
dockerfile: dockerfiles/clients/web-app/Dockerfile
|
||||
args:
|
||||
GRADLE_VERSION: 8.14
|
||||
JAVA_VERSION: 21
|
||||
NGINX_VERSION: alpine
|
||||
image: meldestelle/web-app:latest
|
||||
container_name: meldestelle-web-app
|
||||
ports:
|
||||
- "3001:80"
|
||||
depends_on:
|
||||
- api-gateway
|
||||
environment:
|
||||
# Nginx Configuration
|
||||
- NGINX_HOST=localhost
|
||||
- NGINX_PORT=80
|
||||
|
||||
# Backend API Configuration
|
||||
- API_BASE_URL=http://api-gateway:8080
|
||||
- AUTH_SERVER_URL=http://auth-server:8081
|
||||
|
||||
# Application Configuration
|
||||
- APP_NAME=Meldestelle Web App
|
||||
- APP_VERSION=1.0.0
|
||||
- NODE_ENV=production
|
||||
networks:
|
||||
- meldestelle-network
|
||||
volumes:
|
||||
# Nginx logs
|
||||
- web-app-logs:/var/log/nginx
|
||||
# Static assets cache (optional)
|
||||
- web-app-cache:/var/cache/nginx
|
||||
healthcheck:
|
||||
test: ["CMD", "curl", "-f", "http://localhost/health"]
|
||||
interval: 30s
|
||||
timeout: 5s
|
||||
retries: 3
|
||||
start_period: 15s
|
||||
restart: unless-stopped
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.routers.web-app.rule=Host(`localhost`) || Host(`web.meldestelle.local`)"
|
||||
- "traefik.http.services.web-app.loadbalancer.server.port=80"
|
||||
- "prometheus.scrape=false" # Nginx metrics handled separately if needed
|
||||
|
||||
# ===================================================================
|
||||
# Future Client Applications
|
||||
# ===================================================================
|
||||
|
||||
# Mobile App (if implemented as PWA proxy)
|
||||
# mobile-app:
|
||||
# build:
|
||||
# context: .
|
||||
# dockerfile: dockerfiles/clients/mobile-app/Dockerfile
|
||||
# image: meldestelle/mobile-app:latest
|
||||
# container_name: meldestelle-mobile-app
|
||||
# ports:
|
||||
# - "3002:80"
|
||||
# depends_on:
|
||||
# - api-gateway
|
||||
# networks:
|
||||
# - meldestelle-network
|
||||
# restart: unless-stopped
|
||||
|
||||
# ===================================================================
|
||||
# Volumes for Client Applications
|
||||
# ===================================================================
|
||||
volumes:
|
||||
web-app-logs:
|
||||
driver: local
|
||||
web-app-cache:
|
||||
driver: local
|
||||
|
||||
# ===================================================================
|
||||
# Networks (inherits from main docker-compose.yml or creates if standalone)
|
||||
# ===================================================================
|
||||
networks:
|
||||
meldestelle-network:
|
||||
external: true
|
||||
Reference in New Issue
Block a user