You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
fix(docker): apply docker-host-path-prefix to all compose service mounts (#3218)
The agent and iptables-init containers coordinate via a shared bind-mounted
init-signal directory at /tmp/awf-init. The iptables-init container writes
ready/output.log there after running setup-iptables.sh, and the agent's
entrypoint waits for those files before continuing.
buildAgentVolumes() applies dockerHostPathPrefix to its mount sources so the
agent's /tmp/awf-init bind is daemon-resolvable on split runner/Docker daemon
filesystems (e.g. ARC + DinD). buildIptablesInitService() did not, so once
--docker-host-path-prefix was set the two containers bound to two different
daemon-side directories. The init container could complete successfully and
the agent would still time out after 30s with 'No init container output log
found' because its bind target stayed empty.
The same gap existed in the squid, api-proxy, and cli-proxy service builders:
their bind-mount sources (squid logs, SSL cert/key/db, api-proxy logs,
cli-proxy logs, optional DIFC CA cert) were never run through the prefix
translation, so on ARC/DinD their logs would land in daemon-local directories
and optional file mounts could fail when Docker auto-creates a directory at
the unstaged source path.
Extract normalize/translate/applyHostPathPrefixToVolumes into a shared
host-path-prefix module and call applyHostPathPrefixToVolumes() at the end
of every service builder's volume list construction. agent-volumes.ts
delegates to the shared helper and re-exports the helpers for backwards
compatibility. doh-proxy has no bind mounts and is unchanged.
Add a parameterized symmetric invariant test that walks every bind mount
on every compose service and asserts the prefix is applied uniformly when
set (and skipped otherwise), so any future service builder is protected
against the same class of asymmetric translation bug.
0 commit comments