Summary
packages/worker/src/deployments/strategies/nixpacks.ts:109-125 shells out to docker create / docker cp / docker rm via execSync, while the rest of the worker uses dockerode through DockerRunner.
Why it matters
- Two ways of talking to Docker makes the code harder to follow.
- Raw
execSync paths are not mockable in tests the way DockerRunner is.
Fix
Route the static-asset copy through DockerRunner (or add a method for create/cp/rm) so all Docker interaction goes through one abstraction.
Summary
packages/worker/src/deployments/strategies/nixpacks.ts:109-125shells out todocker create/docker cp/docker rmviaexecSync, while the rest of the worker uses dockerode throughDockerRunner.Why it matters
execSyncpaths are not mockable in tests the wayDockerRunneris.Fix
Route the static-asset copy through
DockerRunner(or add a method for create/cp/rm) so all Docker interaction goes through one abstraction.