fix(docker): align HOME for dashboard and s6 gateway services (#33481)

This commit is contained in:
Dusk
2026-05-28 13:42:27 +10:00
committed by GitHub
parent 71b4a6b18e
commit c341a2d107
4 changed files with 35 additions and 2 deletions
+10
View File
@@ -536,6 +536,7 @@ def test_s6_register_creates_service_dir_and_triggers_scan(
assert run_path.is_file()
assert run_path.stat().st_mode & 0o111 # executable
run_text = run_path.read_text()
assert "export HOME=/opt/data" in run_text
assert "hermes -p coder gateway run" in run_text
assert "s6-setuidgid hermes" in run_text
# Sentinel marking this as the supervised-child invocation. Without
@@ -586,6 +587,15 @@ def test_s6_register_extra_env_is_quoted(s6_scandir, fake_subprocess_run) -> Non
assert "export QUOTED='a'\"'\"'b'" in run_text
def test_render_run_script_resets_home_before_exec() -> None:
from hermes_cli.service_manager import S6ServiceManager
run_text = S6ServiceManager._render_run_script("coder", {})
assert "export HOME=/opt/data" in run_text
assert "exec s6-setuidgid hermes hermes -p coder gateway run" in run_text
def test_s6_register_rejects_invalid_profile_name(s6_scandir) -> None:
from hermes_cli.service_manager import S6ServiceManager
mgr = S6ServiceManager(scandir=s6_scandir)
@@ -0,0 +1,15 @@
"""Regression tests for Docker HOME overrides under s6/with-contenv."""
from pathlib import Path
REPO_ROOT = Path(__file__).resolve().parent.parent
DASHBOARD_RUN = REPO_ROOT / "docker" / "s6-rc.d" / "dashboard" / "run"
def test_dashboard_run_resets_home_before_dropping_privileges() -> None:
text = DASHBOARD_RUN.read_text(encoding="utf-8")
assert "#!/command/with-contenv sh" in text
assert "export HOME=/opt/data" in text
assert "exec s6-setuidgid hermes hermes dashboard" in text