The Dockerfile uses `pnpm exec esbuild` to bundle the migrator into a single ESM file before copying it into the runtime image. pnpm exec only resolves binaries from declared dependencies, so the transitive esbuild that tsx pulls in wasn't visible to the build stage. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>