Manche Container haben einen Healthcheck.
Das brauche ich auch.
Eigentlich ist es ganz einfach.
Leider kann man nur den bereitgestellten Dienst checken, nicht den von aussen erreichbaren Webdienst auf 443.
version: "3"
services:
wikijs:
container_name: wikijs
environment:
- PUID=5004
- PGID=5005
- TZ=Europe/Berlin
- DB_TYPE=postgres
- DB_HOST=myserverip
- DB_PORT=5432
- DB_NAME=mywiki´´
- DB_USER=myuser
- DB_PASS=mypasswd
ports:
- 127.0.0.1:2999:2999
volumes:
- /docker/wikijs/config:/config
- /docker/wikijs/data:/data
restart: unless-stopped
image: linuxserver/wikijs:latest
healthcheck:
test: curl --fail http://127.0.0.1:2999 || exit 1
interval: 60s
retries: 5
start_period: 60s
timeout: 10s
networks: {}
Und so sieht das dann aus. ✅
**docker-compose ps**
Name Command State Ports
--------------------------------------------------------------------
wikijs /init Up (healthy) 127.0.0.1:2999->2999/tcp, 3000/tcp
Die Sitemap Generierung ist ein eigener Container.
Test:
docker exec -it wikijs-sitemap ls -l static
total 8
-rw-r--r-- 1 root root 4414 Apr 9 17:36 sitemap.xml
Umsetzung in docker-compose
version: "3.3"
services:
wikijs-sitemap:
container_name: wikijs-sitemap
environment:
- PUID=5004
- PGID=5005
- DB_TYPE=postgres
- DB_HOST=myserverip
- DB_PORT=5432
- DB_NAME=mywiki´´
- DB_USER=myuser
- DB_PASS=mypasswd
restart: unless-stopped
ports:
- 3012:3012
image: hostwiki/wikijs-sitemap:latest
healthcheck:
test: find . -name "sitemap.xml" -mtime +0 -mtime -1 -exec /bin/sh -c 'exit 1' \; || true
interval: 600s
retries: 5
start_period: 60s
timeout: 10s
Das Intervall kann natürlich noch erheblich vergrössert werden.
Mir geht es nur darum, dass die sitemap täglich aktualisiert wird
wikijs-sitemap | at generateSitemap (/wiki/sitemap/generate-sitemap.js:54:15)
wikijs-sitemap | at async Task.generateSitemapAndLog [as _execution] (/wiki/sitemap/server.js:40:13)
wikijs-sitemap | [[2024-04-11T00:00:00.981Z] Error generating sitemap (attempt 14/15): Error: Database connection error: Unable to acquire a connection
wikijs-sitemap | at generateSitemap (/wiki/sitemap/generate-sitemap.js:54:15)
wikijs-sitemap | at async Task.generateSitemapAndLog [as _execution] (/wiki/sitemap/server.js:40:13)
wikijs-sitemap | [[2024-04-11T00:00:00.981Z] Error generating sitemap (attempt 15/15): Error: Database connection error: Unable to acquire a connection
wikijs-sitemap | at generateSitemap (/wiki/sitemap/generate-sitemap.js:54:15)
wikijs-sitemap | at async Task.generateSitemapAndLog [as _execution] (/wiki/sitemap/server.js:40:13)
wikijs-sitemap | Server listening on port 3012
wikijs-sitemap | [2024-04-11T06:39:53.025Z] sitemap generated successfully.
####################
wikijs-sitemap | [[2024-04-11T00:00:00.981Z] Error generating sitemap (attempt 1/15): Error: Database connection error: Unable to acquire a connection
wikijs-sitemap | [[2024-04-11T00:00:00.981Z] Error generating sitemap (attempt 2/15): Error: Database connection error: Unable to acquire a connection
wikijs-sitemap | [[2024-04-11T00:00:00.981Z] Error generating sitemap (attempt 3/15): Error: Database connection error: Unable to acquire a connection
wikijs-sitemap | [[2024-04-11T00:00:00.981Z] Error generating sitemap (attempt 4/15): Error: Database connection error: Unable to acquire a connection
wikijs-sitemap | [[2024-04-11T00:00:00.981Z] Error generating sitemap (attempt 5/15): Error: Database connection error: Unable to acquire a connection
wikijs-sitemap | [[2024-04-11T00:00:00.981Z] Error generating sitemap (attempt 6/15): Error: Database connection error: Unable to acquire a connection
wikijs-sitemap | [[2024-04-11T00:00:00.981Z] Error generating sitemap (attempt 7/15): Error: Database connection error: Unable to acquire a connection
wikijs-sitemap | [[2024-04-11T00:00:00.981Z] Error generating sitemap (attempt 8/15): Error: Database connection error: Unable to acquire a connection
wikijs-sitemap | [[2024-04-11T00:00:00.981Z] Error generating sitemap (attempt 9/15): Error: Database connection error: Unable to acquire a connection
wikijs-sitemap | [[2024-04-11T00:00:00.981Z] Error generating sitemap (attempt 10/15): Error: Database connection error: Unable to acquire a connection
wikijs-sitemap | [[2024-04-11T00:00:00.981Z] Error generating sitemap (attempt 11/15): Error: Database connection error: Unable to acquire a connection
wikijs-sitemap | [[2024-04-11T00:00:00.981Z] Error generating sitemap (attempt 12/15): Error: Database connection error: Unable to acquire a connection
wikijs-sitemap | [[2024-04-11T00:00:00.981Z] Error generating sitemap (attempt 13/15): Error: Database connection error: Unable to acquire a connection
wikijs-sitemap | [[2024-04-11T00:00:00.981Z] Error generating sitemap (attempt 14/15): Error: Database connection error: Unable to acquire a connection
wikijs-sitemap | [[2024-04-11T00:00:00.981Z] Error generating sitemap (attempt 15/15): Error: Database connection error: Unable to acquire a connection
Auffallend finde ich, dass der Zeitstempel auf die microsekunde bei 15 Versuchen immer exakt gleich ist.
Quellen: