Je ziet nu waarom een app niet start: de logs en healthcheck-uitvoer van de containers die niet opkwamen belanden in hetzelfde joblog, het wijzigscherm meldt een bijgewerkt sjabloon, en de lege map die Docker achterlaat waar een bestand hoort wordt opgeruimd in plaats van het probleem in stand te houden. Bevat ook de vier nieuwe verbindingsapps en de soepelere updater-adressen. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01H9Vcwu7owJZ3nj5dCf4VFT
104 lines
4 KiB
YAML
104 lines
4 KiB
YAML
services:
|
|
<< service_name >>:
|
|
image: lscr.io/linuxserver/unifi-network-application:latest
|
|
container_name: << service_name >>
|
|
environment:
|
|
- PUID=<< puid >>
|
|
- PGID=<< pgid >>
|
|
- TZ=<< timezone >>
|
|
- MONGO_USER=unifi
|
|
- MONGO_PASS=<< mongo_password >>
|
|
- MONGO_HOST=<< service_name >>-mongo
|
|
- MONGO_PORT=27017
|
|
- MONGO_DBNAME=unifi
|
|
- MONGO_AUTHSOURCE=admin
|
|
volumes:
|
|
- << appdata_dir >>/<< service_name >>/config:/config
|
|
ports:
|
|
- "<< port_ui >>:8443"
|
|
- "<< port_inform >>:8080"
|
|
- "<< port_stun >>:3478/udp"
|
|
- "<< port_discovery >>:10001/udp"
|
|
depends_on:
|
|
<< service_name >>-mongo:
|
|
condition: service_healthy
|
|
<< service_name >>-mongo-init:
|
|
condition: service_completed_successfully
|
|
restart: unless-stopped
|
|
|
|
<< service_name >>-mongo:
|
|
# Vanaf 4.4.19 eist MongoDB ARMv8.2-A; een Pi 4 (Cortex-A72) heeft dat niet
|
|
# en mongod stopt daar met 'Illegal instruction'. Zie SERVER-71772. De
|
|
# versie is instelbaar, zodat je op nieuwere hardware hoger kunt.
|
|
image: mongo:<< mongo_version >>
|
|
container_name: << service_name >>-mongo
|
|
environment:
|
|
# Dezelfde beheerdersnaam als het allereerste sjabloon gebruikte. Zo
|
|
# passen een vers volume en een volume van een oudere installatie op
|
|
# dezelfde inloggegevens — ook die van de backup (mongodump).
|
|
- MONGO_INITDB_ROOT_USERNAME=unifi
|
|
- MONGO_INITDB_ROOT_PASSWORD=<< mongo_password >>
|
|
- MONGO_USER=unifi
|
|
- MONGO_PASS=<< mongo_password >>
|
|
- MONGO_DBNAME=unifi
|
|
- MONGO_AUTHSOURCE=admin
|
|
volumes:
|
|
- << service_name >>_mongodata:/data/db
|
|
- ./init-mongo.sh:/docker-entrypoint-initdb.d/init-mongo.sh:ro
|
|
healthcheck:
|
|
# Bewust zonder inloggegevens: `ping` mag ook zonder aanmelden. Een
|
|
# volume dat door een oudere versie van dit sjabloon is aangemaakt kent
|
|
# de gebruiker 'root' niet, en dan bleef deze container voor altijd
|
|
# ongezond — waardoor de reparatiecontainer hieronder nooit startte.
|
|
test:
|
|
- CMD-SHELL
|
|
- 'mongo --quiet --eval "db.adminCommand({ ping: 1 })"'
|
|
# Ruim bemeten voor trage hardware: op een Pi kost het starten van de
|
|
# mongo-shell zelf al seconden, en de eerste initialisatie op een
|
|
# SD-kaart duurt langer dan een halve minuut. Op een snelle host is de
|
|
# container gewoon na de eerste controle gezond.
|
|
interval: 15s
|
|
timeout: 20s
|
|
retries: 10
|
|
start_period: 90s
|
|
restart: unless-stopped
|
|
|
|
<< service_name >>-mongo-init:
|
|
image: mongo:<< mongo_version >>
|
|
container_name: << service_name >>-mongo-init
|
|
environment:
|
|
- MONGO_INITDB_ROOT_USERNAME=unifi
|
|
- MONGO_INITDB_ROOT_PASSWORD=<< mongo_password >>
|
|
- MONGO_USER=unifi
|
|
- MONGO_PASS=<< mongo_password >>
|
|
- MONGO_HOST=<< service_name >>-mongo
|
|
- MONGO_PORT=27017
|
|
- MONGO_DBNAME=unifi
|
|
- MONGO_AUTHSOURCE=admin
|
|
volumes:
|
|
- ./init-mongo.sh:/init-mongo.sh:ro
|
|
# Dezelfde map als UniFi zelf: hierin staat system.properties, dat het
|
|
# image alleen bij de allereerste start schrijft.
|
|
- << appdata_dir >>/<< service_name >>/config:/unifi-config
|
|
# Eerst kijken óf het script er is. Ontbreekt het in de stackmap, dan mount
|
|
# Docker er een lege map overheen en stopt de container met "exit 126" —
|
|
# een getal waar niemand iets aan heeft. Nu staat er wat je eraan doet.
|
|
entrypoint:
|
|
- /bin/bash
|
|
- -c
|
|
- |
|
|
if [ ! -f /init-mongo.sh ]; then
|
|
echo "FOUT: /init-mongo.sh ontbreekt in de stackmap van deze app."
|
|
echo "Docker heeft er daarom een lege map van gemaakt."
|
|
echo "Herstel het met: Instellingen wijzigen -> opslaan, dan wordt"
|
|
echo "het sjabloon opnieuw uitgeschreven."
|
|
exit 1
|
|
fi
|
|
exec bash /init-mongo.sh
|
|
depends_on:
|
|
<< service_name >>-mongo:
|
|
condition: service_healthy
|
|
restart: "no"
|
|
|
|
volumes:
|
|
<< service_name >>_mongodata:
|