From 5eb27cd9a8fbbf1343a2f65946d91ffd81ff81c4 Mon Sep 17 00:00:00 2001 From: claude Date: Tue, 23 Jun 2026 09:05:44 +0000 Subject: [PATCH] fix: mount egress dir (not file) for docker and smolmachines backends Mirrors the fix already applied to the macos-container backend in eb3e64e: bind-mount the parent egress directory instead of the routes file itself, so the live routes update is visible inside the running sidecar bundle when the host overwrites the file. --- bot_bottle/backend/docker/compose.py | 2 +- bot_bottle/backend/smolmachines/launch.py | 2 +- tests/unit/test_compose.py | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/bot_bottle/backend/docker/compose.py b/bot_bottle/backend/docker/compose.py index 16a67d4..9ad0011 100644 --- a/bot_bottle/backend/docker/compose.py +++ b/bot_bottle/backend/docker/compose.py @@ -134,7 +134,7 @@ def _sidecar_bundle_service(plan: DockerBottlePlan) -> dict[str, Any]: ep = plan.egress_plan volumes.append(_bind(ep.mitmproxy_ca_host_path, EGRESS_CA_IN_CONTAINER)) if ep.routes: - volumes.append(_bind(ep.routes_path, EGRESS_ROUTES_IN_CONTAINER)) + volumes.append(_bind(ep.routes_path.parent, str(Path(EGRESS_ROUTES_IN_CONTAINER).parent))) for token_env in sorted(ep.token_env_map.keys()): env.append(token_env) diff --git a/bot_bottle/backend/smolmachines/launch.py b/bot_bottle/backend/smolmachines/launch.py index 7bf891a..a1d0925 100644 --- a/bot_bottle/backend/smolmachines/launch.py +++ b/bot_bottle/backend/smolmachines/launch.py @@ -308,7 +308,7 @@ def _bundle_launch_spec( ep = plan.egress_plan volumes.append((str(ep.mitmproxy_ca_host_path), EGRESS_CA_IN_CONTAINER, True)) if ep.routes: - volumes.append((str(ep.routes_path), EGRESS_ROUTES_IN_CONTAINER, True)) + volumes.append((str(ep.routes_path.parent), str(Path(EGRESS_ROUTES_IN_CONTAINER).parent), True)) # Bare-name entries for upstream-token slots. Their values # come from the docker-run subprocess env (inherited from # the operator's shell), never landing on argv. diff --git a/tests/unit/test_compose.py b/tests/unit/test_compose.py index cad8840..8b10eec 100644 --- a/tests/unit/test_compose.py +++ b/tests/unit/test_compose.py @@ -392,7 +392,7 @@ class TestSidecarBundleShape(unittest.TestCase): "services"]["sidecars"] targets = {v["target"] for v in sc["volumes"]} self.assertIn("/home/mitmproxy/.mitmproxy/mitmproxy-ca.pem", targets) - self.assertIn("/etc/egress/routes.yaml", targets) + self.assertIn("/etc/egress", targets) self.assertIn("/git-gate-entrypoint.sh", targets) self.assertIn("/git-gate/creds/upstream-known_hosts", targets) self.assertTrue(any("supervise/queue" in t or t.startswith("/run/supervise")