Revamped Dockerfile and compose for updated architectur

This commit is contained in:
2026-01-21 14:52:19 +01:00
parent c758c236f1
commit 4401d67f2d
7 changed files with 124 additions and 185 deletions

View File

@@ -1,49 +1,70 @@
services:
api-server:
user: 0:0
restart: always
image: ${MOONLIGHT_IMAGE}
services:
app:
# Meta
image: moonlight-deploy
# Build
pull_policy: build
build:
context: .
dockerfile: ./Dockerfile
dockerfile: Dockerfile
args:
- MOONLIGHT_REPO=${MOONLIGHT_REPOSITORY}
- MOONLIGHT_BRANCH=${MOONLIGHT_BRANCH}
- MOONLIGHT_GITHUB_TOKEN=${MOONLIGHT_GITHUB_TOKEN}
- MOONLIGHT_NUGET_SOURCE=${MOONLIGHT_NUGET_SOURCE}
ports:
- "${MOONLIGHT_PORT}:8080"
HTTP_PROXY: ${HTTP_PROXY}
HTTPS_PROXY: ${HTTPS_PROXY}
# Requirements
depends_on:
db:
database:
condition: service_healthy
# Networks
networks:
- moonlight
ports:
- "8080:8080"
# Env Settings
environment:
- MOONLIGHT_DATABASE_HOST=db
- MOONLIGHT_DATABASE_PORT=5432
- MOONLIGHT_DATABASE_USERNAME=${MOONLIGHT_DATABASE_USER}
- MOONLIGHT_DATABASE_PASSWORD=${MOONLIGHT_DATABASE_PASSWORD}
- MOONLIGHT_DATABASE_DATABASE=${MOONLIGHT_DATABASE_NAME}
- MOONLIGHT_PUBLICURL=${MOONLIGHT_URL}
- MOONLIGHT_AUTHENTICATION_OAUTH2_ACCESSENDPOINT=http://localhost:8080/oauth2/handle # Use this when moonlight is using local oauth2 and a different port as the public url
env_file:
- path: "additional.env"
required: false
volumes:
- ${MOONLIGHT_DATA}/moonlight:/app/storage
links:
- db
pull_policy: ${MOONLIGHT_PULL_POLICY}
# 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"
db:
image: postgres:latest
restart: always
database:
image: postgres:18.1
networks:
- moonlight
environment:
- POSTGRES_USER=${MOONLIGHT_DATABASE_USER}
- POSTGRES_DB=${MOONLIGHT_DATABASE_NAME}
- POSTGRES_PASSWORD=${MOONLIGHT_DATABASE_PASSWORD}
- "POSTGRES_USER=${DATABASE_USERNAME}"
- "POSTGRES_PASSWORD=${DATABASE_PASSWORD}"
- "POSTGRES_DB=${DATABASE_DATABASE}"
- "PGDATA=/pgdata"
volumes:
- ${MOONLIGHT_DATA}/database:/var/lib/postgresql/data
- ./data/database:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready"]
test: [ "CMD", "pg_isready", "-q", "-d", $DATABASE_DATABASE, "-U", $DATABASE_USERNAME]
interval: 10s
timeout: 5s
retries: 5
networks:
moonlight: