eCourt-Doc-Edit/docker-compose.prod.yml

79 lines
2.8 KiB
YAML
Raw Normal View History

2026-09-21 19:41:26 +07:00
version: "3.9"
services:
api:
image: ${BACKEND_IMAGE:-ghcr.io/your-namespace/word-versioning-backend:latest}
environment:
ASPNETCORE_ENVIRONMENT: Production
ConnectionStrings__Default: Host=${DB_HOST:-db};Port=${DB_PORT:-5432};Database=${DB_NAME:-wordversioning};Username=${DB_USER:-wordversioning};Password=${DB_PASSWORD}
MinIO__Endpoint: ${MINIO_ENDPOINT:-minio:39000}
MinIO__AccessKey: ${MINIO_ROOT_USER}
MinIO__SecretKey: ${MINIO_ROOT_PASSWORD}
MinIO__UseSSL: "false"
Authentication__Authority: ${KEYCLOAK_AUTHORITY:-https://keycloak:8443/realms/word-versioning}
Authentication__ValidAudiences__0: ${AUTH_AUDIENCE_0:-word-addin-officejs}
Authentication__ValidAudiences__1: ${AUTH_AUDIENCE_1:-word-versioning-web}
Cors__AllowedOrigins__0: ${WEB_URL:-http://localhost:5173}
Cors__AllowedOrigins__1: ${ADDIN_URL:-https://localhost:3000}
OpenLinks__Secret: ${OPENLINKS_SECRET}
OpenLinks__BaseUrl: ${OPENLINKS_BASE_URL}
OpenLinks__ExpirySeconds: ${OPENLINKS_EXPIRY_SECONDS:-120}
DevHttps__Enabled: "false"
ports:
- "8080:8080"
depends_on:
- db
- minio
- keycloak
web:
image: ${WEB_IMAGE:-ghcr.io/your-namespace/word-versioning-web:latest}
environment:
NUXT_PUBLIC_API_BASE_URL: ${NUXT_PUBLIC_API_BASE_URL:-http://api:8080}
NUXT_PUBLIC_KEYCLOAK_AUTHORITY: ${NUXT_PUBLIC_KEYCLOAK_AUTHORITY:-https://keycloak:8443/realms/word-versioning}
NUXT_PUBLIC_KEYCLOAK_CLIENT_ID: ${NUXT_PUBLIC_KEYCLOAK_CLIENT_ID:-word-versioning-web}
NUXT_PUBLIC_OPEN_IN_WORD: ${NUXT_PUBLIC_OPEN_IN_WORD:-on}
ports:
- "5173:3000"
depends_on:
- api
db:
image: postgres:16
environment:
POSTGRES_USER: ${DB_USER:-wordversioning}
POSTGRES_PASSWORD: ${DB_PASSWORD}
POSTGRES_DB: ${DB_NAME:-wordversioning}
volumes:
- postgres_data:/var/lib/postgresql/data
minio:
image: quay.io/minio/minio:latest
command: server /data --address ":39000" --console-address ":39001"
environment:
MINIO_ROOT_USER: ${MINIO_ROOT_USER}
MINIO_ROOT_PASSWORD: ${MINIO_ROOT_PASSWORD}
volumes:
- minio_data:/data
ports:
- "39000:39000"
- "39001:39001"
keycloak:
image: quay.io/keycloak/keycloak:26.2
command: start-dev --import-realm
environment:
KC_BOOTSTRAP_ADMIN_USERNAME: ${KC_BOOTSTRAP_ADMIN_USERNAME}
KC_BOOTSTRAP_ADMIN_PASSWORD: ${KC_BOOTSTRAP_ADMIN_PASSWORD}
KC_HTTPS_CERTIFICATE_FILE: /certs/localhost.crt
KC_HTTPS_CERTIFICATE_KEY_FILE: /certs/localhost.key
volumes:
- ./keycloak/realm-export.json:/opt/keycloak/data/import/realm-export.json:ro
- ${HOME:-${USERPROFILE}}/.office-addin-dev-certs:/certs:ro
ports:
- "8443:8443"
volumes:
postgres_data:
minio_data: