70 lines
1.8 KiB
YAML
70 lines
1.8 KiB
YAML
services:
|
|
app:
|
|
# Meta
|
|
image: moonlight-deploy
|
|
|
|
# Build
|
|
pull_policy: build
|
|
build:
|
|
context: .
|
|
dockerfile: Dockerfile
|
|
args:
|
|
HTTP_PROXY: ${HTTP_PROXY}
|
|
HTTPS_PROXY: ${HTTPS_PROXY}
|
|
|
|
# Requirements
|
|
depends_on:
|
|
database:
|
|
condition: service_healthy
|
|
|
|
# Networks
|
|
networks:
|
|
- moonlight
|
|
ports:
|
|
- "8080:8080"
|
|
|
|
# Env Settings
|
|
environment:
|
|
# Database settings
|
|
- "Moonlight__Database__Host=${DATABASE_HOST}"
|
|
- "Moonlight__Database__Port=${DATABASE_PORT}"
|
|
- "Moonlight__Database__Username=${DATABASE_USERNAME}"
|
|
- "Moonlight__Database__Password=${DATABASE_PASSWORD}"
|
|
- "Moonlight__Database__Database=${DATABASE_DATABASE}"
|
|
|
|
# OIDC
|
|
- "Moonlight__OIDC__Authority=${OIDC_AUTHORITY}"
|
|
- "Moonlight__OIDC__ClientId=${OIDC_CLIENT_ID}"
|
|
- "Moonlight__OIDC__ClientSecret=${OIDC_CLIENT_SECRET}"
|
|
- "Moonlight__OIDC__RequireHttpsMetadata=${OIDC_REQUIRE_HTTPS_METADATA:-true}"
|
|
- "Moonlight__OIDC__Scopes__0=openid"
|
|
- "Moonlight__OIDC__Scopes__1=identify"
|
|
- "Moonlight__OIDC__Scopes__2=email"
|
|
|
|
# Logging
|
|
- "Logging__LogLevel__Default=Information"
|
|
- "Logging__LogLevel__Microsoft.AspNetCore=Warning"
|
|
|
|
database:
|
|
image: postgres:18.1
|
|
|
|
networks:
|
|
- moonlight
|
|
|
|
environment:
|
|
- "POSTGRES_USER=${DATABASE_USERNAME}"
|
|
- "POSTGRES_PASSWORD=${DATABASE_PASSWORD}"
|
|
- "POSTGRES_DB=${DATABASE_DATABASE}"
|
|
- "PGDATA=/pgdata"
|
|
|
|
volumes:
|
|
- ./data/database:/var/lib/postgresql/data
|
|
|
|
healthcheck:
|
|
test: [ "CMD", "pg_isready", "-q", "-d", $DATABASE_DATABASE, "-U", $DATABASE_USERNAME]
|
|
interval: 10s
|
|
timeout: 5s
|
|
retries: 5
|
|
|
|
networks:
|
|
moonlight: |