29 lines
1.1 KiB
YAML
29 lines
1.1 KiB
YAML
|
|
services:
|
||
|
|
kb-site:
|
||
|
|
image: nginx:alpine
|
||
|
|
container_name: kb-site
|
||
|
|
restart: unless-stopped
|
||
|
|
ports:
|
||
|
|
# PIHA 82x0 static-HTTP block: 8210 paperless, 8220 nextcloud,
|
||
|
|
# 8230 kb-query, 8240 narty27 -> 8250 is the next free slot.
|
||
|
|
# Publicly the site is reached only through the npm@PIHA vhost
|
||
|
|
# kb.okit.pl; this bind is the proxy's upstream.
|
||
|
|
- "8250:80"
|
||
|
|
volumes:
|
||
|
|
# Generated output of scripts/kb/gen_pages.py — never committed, never
|
||
|
|
# bind-mounted from the repo. Read-only: nginx only serves it; writes go
|
||
|
|
# through the helper-container procedure in kb/runbooks/kb-site-deploy.md
|
||
|
|
# (docker cp cannot write into a :ro mount).
|
||
|
|
- kb-site_content:/usr/share/nginx/html:ro
|
||
|
|
# busybox wget — nginx:alpine ships no curl. index.html is generated on
|
||
|
|
# every run, so it is the one file that must always be there.
|
||
|
|
healthcheck:
|
||
|
|
test: ["CMD", "wget", "-q", "-O", "/dev/null", "http://127.0.0.1/index.html"]
|
||
|
|
interval: 30s
|
||
|
|
timeout: 10s
|
||
|
|
retries: 5
|
||
|
|
start_period: 5s
|
||
|
|
|
||
|
|
volumes:
|
||
|
|
kb-site_content:
|