42 lines
1.5 KiB
YAML
42 lines
1.5 KiB
YAML
# Base compose: production-like. Both services, no host port mappings (NPM is the
|
|
# only path to the web app; the editors reach PocketBase through an NPM subdomain).
|
|
# Only PocketBase's data is a volume; everything else lives inside the images.
|
|
#
|
|
# For local development use the dev overlay on top, which adds host ports and builds
|
|
# the web image from source:
|
|
# docker compose -f compose.yaml -f compose.dev.yaml up --build
|
|
# (The Rider run config "DevEnvironment" does exactly this with one click.)
|
|
#
|
|
# Startup order: PocketBase comes up first; once it reports healthy the web app
|
|
# starts (depends_on -> service_healthy).
|
|
|
|
services:
|
|
eb-pocketbase:
|
|
image: ghcr.io/muchobien/pocketbase:0.40.4
|
|
container_name: eb-pocketbase
|
|
restart: unless-stopped
|
|
environment:
|
|
TZ: Europe/Berlin
|
|
volumes:
|
|
# The only state that must survive a restart or redeploy.
|
|
- /mnt/user/appdata/pocketbase/pb_data:/pb_data
|
|
healthcheck:
|
|
# The image ships this endpoint; the web app waits for it to pass.
|
|
test: ["CMD", "wget", "--spider", "-q", "http://localhost:8090/api/health"]
|
|
interval: 5s
|
|
timeout: 3s
|
|
retries: 10
|
|
|
|
eb-web:
|
|
image: gitea.anticarnist.de/tom/elternbeirat:latest
|
|
container_name: eb-web
|
|
restart: unless-stopped
|
|
depends_on:
|
|
eb-pocketbase:
|
|
condition: service_healthy
|
|
environment:
|
|
ASPNETCORE_URLS: http://+:8080
|
|
TZ: Europe/Berlin
|
|
# The web app reads content from PocketBase over the compose network.
|
|
PocketBase__BaseUrl: http://eb-pocketbase:8090
|