fix(searxng): Init-Container für Env-Substitution
All checks were successful
Build & Publish Docker Image / build-and-push (push) Successful in 1m17s

Der entrypoint-Override im vorherigen Commit scheiterte, weil der
erwartete Pfad /usr/local/searxng/dockerfiles/docker-entrypoint.sh im
aktuellen SearXNG-Image (granian-basiert) nicht existiert. Stattdessen
jetzt ein Ein-Shot-Init-Container mit dem gleichen SearXNG-Image:

- searxng-init: liest ./searxng/settings.yml read-only, expandiert
  ${VAR}-Platzhalter per Python os.path.expandvars, schreibt Ergebnis
  auf ein named volume (searxng-config).
- searxng: mountet searxng-config auf /etc/searxng und startet
  unverändert mit seinem Original-Entrypoint (kein Pfad-Raten).
- depends_on mit condition: service_completed_successfully → searxng
  wartet auf fertigen Init.

settings.yml: secret_key nutzt ${SEARXNG_SECRET} ohne :- default
(Python-expandvars kennt das nicht). Der Default landet als ENV im
Compose.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
hsiegeln
2026-04-18 14:15:01 +02:00
parent 68e27a6868
commit a2b3c8981c
2 changed files with 35 additions and 24 deletions

View File

@@ -1,8 +1,9 @@
use_default_settings: true
server:
# In production override via env (see docker-compose.prod.yml).
secret_key: ${SEARXNG_SECRET:-dev-secret-change-in-prod}
# Platzhalter wird beim Container-Start per os.path.expandvars aus der
# SEARXNG_SECRET-Env-Variable gesetzt (Default im docker-compose.prod.yml).
secret_key: "${SEARXNG_SECRET}"
# Disables rate limiter + bot detection. This is a private internal service
# called only by kochwas — no public exposure, no abuse risk.
limiter: false