diff --git a/docker-compose.gpu-amd.yml b/docker-compose.gpu-amd.yml index 538f0652d..a3db3f2c0 100644 --- a/docker-compose.gpu-amd.yml +++ b/docker-compose.gpu-amd.yml @@ -129,7 +129,10 @@ services: fi sed "s|__SEARXNG_SECRET__|$$secret|g" /tmp/searxng-settings.yml.template > /etc/searxng/settings.yml fi - /usr/local/searxng/.venv/bin/python /tmp/migrate-searxng-settings.py /etc/searxng/settings.yml + # Advisory: a settings file the migration cannot parse or rewrite must + # not be what stops searxng from booting. It explains itself on stderr + # and we carry on, letting searxng report anything genuinely wrong. + /usr/local/searxng/.venv/bin/python /tmp/migrate-searxng-settings.py /etc/searxng/settings.yml || true exec /usr/local/searxng/entrypoint.sh ports: - "127.0.0.1:8080:8080" diff --git a/docker-compose.gpu-nvidia.yml b/docker-compose.gpu-nvidia.yml index 82ec157b2..f745b132a 100644 --- a/docker-compose.gpu-nvidia.yml +++ b/docker-compose.gpu-nvidia.yml @@ -132,7 +132,10 @@ services: fi sed "s|__SEARXNG_SECRET__|$$secret|g" /tmp/searxng-settings.yml.template > /etc/searxng/settings.yml fi - /usr/local/searxng/.venv/bin/python /tmp/migrate-searxng-settings.py /etc/searxng/settings.yml + # Advisory: a settings file the migration cannot parse or rewrite must + # not be what stops searxng from booting. It explains itself on stderr + # and we carry on, letting searxng report anything genuinely wrong. + /usr/local/searxng/.venv/bin/python /tmp/migrate-searxng-settings.py /etc/searxng/settings.yml || true exec /usr/local/searxng/entrypoint.sh ports: - "127.0.0.1:8080:8080" diff --git a/docker-compose.yml b/docker-compose.yml index 5ef50e640..4b69458ad 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -110,7 +110,10 @@ services: fi sed "s|__SEARXNG_SECRET__|$$secret|g" /tmp/searxng-settings.yml.template > /etc/searxng/settings.yml fi - /usr/local/searxng/.venv/bin/python /tmp/migrate-searxng-settings.py /etc/searxng/settings.yml + # Advisory: a settings file the migration cannot parse or rewrite must + # not be what stops searxng from booting. It explains itself on stderr + # and we carry on, letting searxng report anything genuinely wrong. + /usr/local/searxng/.venv/bin/python /tmp/migrate-searxng-settings.py /etc/searxng/settings.yml || true exec /usr/local/searxng/entrypoint.sh ports: - "127.0.0.1:8080:8080" diff --git a/tests/test_searxng_settings_migration.py b/tests/test_searxng_settings_migration.py index 208b57ba9..75cef7775 100644 --- a/tests/test_searxng_settings_migration.py +++ b/tests/test_searxng_settings_migration.py @@ -310,9 +310,12 @@ def test_replace_failure_preserves_original_and_removes_temporary_file( def test_compose_runs_migration_for_all_variants(compose_file): text = compose_file.read_text(encoding="utf-8") + # The `|| true` is load-bearing: the entrypoint runs under `set -eu`, so + # without it a settings file the migration cannot parse or rewrite stops + # searxng from starting at all instead of merely going unmigrated. assert ( "/usr/local/searxng/.venv/bin/python /tmp/migrate-searxng-settings.py " - "/etc/searxng/settings.yml" in text + "/etc/searxng/settings.yml || true" in text ) assert ( "./scripts/migrate_searxng_settings.py:"