From 37a3b51e57323556365a0feb45d4089271e76c89 Mon Sep 17 00:00:00 2001 From: Michal Date: Tue, 5 May 2026 22:09:24 +0100 Subject: [PATCH] build(labd): include @lab/core in the Dockerfile build chain The v2.0 Phase 1 commit (04faa07) introduced the @lab/core package but the labd Dockerfile still only copied @lab/shared and @lab/labd, so the container build would fail to resolve @lab/core imports. Both stages updated: - Builder: copy @lab/core package.json/tsconfig + src, add it to the build order between @lab/shared and @lab/labd. - Runtime: copy @lab/core dist and package.json into the final image. Co-Authored-By: Claude Opus 4.7 (1M context) --- bastion/Dockerfile.labd | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/bastion/Dockerfile.labd b/bastion/Dockerfile.labd index 50f7305..633b399 100644 --- a/bastion/Dockerfile.labd +++ b/bastion/Dockerfile.labd @@ -11,6 +11,7 @@ WORKDIR /app # Copy workspace config and package manifests first (layer cache) COPY pnpm-workspace.yaml pnpm-lock.yaml package.json tsconfig.base.json tsconfig.json ./ COPY src/shared/package.json src/shared/tsconfig.json src/shared/ +COPY src/core/package.json src/core/tsconfig.json src/core/ COPY src/labd/package.json src/labd/tsconfig.json src/labd/ # Install all dependencies (dev included -- needed for build) @@ -22,10 +23,13 @@ RUN pnpm --filter @lab/labd exec prisma generate # Copy source code COPY src/shared/src/ src/shared/src/ +COPY src/core/src/ src/core/src/ COPY src/labd/src/ src/labd/src/ -# Build TypeScript (shared first via project references) -RUN pnpm --filter @lab/shared build && pnpm --filter @lab/labd build +# Build TypeScript (shared + core before labd via project references) +RUN pnpm --filter @lab/shared build \ + && pnpm --filter @lab/core build \ + && pnpm --filter @lab/labd build # Hoist the generated Prisma client so stage 2 can COPY it from a stable path RUN mkdir -p /app/_prisma && \ @@ -41,6 +45,7 @@ WORKDIR /app # Copy workspace config and package manifests COPY pnpm-workspace.yaml pnpm-lock.yaml package.json ./ COPY src/shared/package.json src/shared/ +COPY src/core/package.json src/core/ COPY src/labd/package.json src/labd/ # Install production dependencies only @@ -48,6 +53,7 @@ RUN pnpm install --frozen-lockfile --prod 2>/dev/null || pnpm install --prod # Copy built output from builder COPY --from=builder /app/src/shared/dist/ src/shared/dist/ +COPY --from=builder /app/src/core/dist/ src/core/dist/ COPY --from=builder /app/src/labd/dist/ src/labd/dist/ # Copy Prisma schema + generated client into pnpm store location