From 655380dd8d548b8e1f981bdb6a0f925f9ccc17ea Mon Sep 17 00:00:00 2001 From: MythEclipse Date: Tue, 9 Jun 2026 20:35:35 +0700 Subject: [PATCH] fix: build @bete/shared before frontend in Dockerfile MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit TypeScript compilation in the frontend Docker build fails with TS2307: Cannot find module '@bete/shared' because the shared package's .d.ts files in dist/ were never generated. The backend and discord-gateway Dockerfiles already have this build step — frontend was missing it. Co-Authored-By: Claude Opus 4.8 --- infra/docker/Dockerfile.frontend | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/infra/docker/Dockerfile.frontend b/infra/docker/Dockerfile.frontend index a7e4419..a80d355 100644 --- a/infra/docker/Dockerfile.frontend +++ b/infra/docker/Dockerfile.frontend @@ -9,7 +9,7 @@ WORKDIR /app # Install pnpm RUN npm install -g pnpm -# Copy workspace files +# Copy dependency definition files first for caching COPY pnpm-workspace.yaml . COPY pnpm-lock.yaml . COPY package.json . @@ -17,11 +17,19 @@ COPY package.json . # Copy patches (pnpm patchedDependencies) COPY patches ./patches +# Copy workspace dependency +COPY packages/shared ./packages/shared + # Copy service COPY services/frontend ./services/frontend # Install dependencies -RUN pnpm install --frozen-lockfile +RUN --mount=type=cache,id=pnpm-store,target=/root/.local/share/pnpm/store \ + pnpm install --frozen-lockfile + +# Build shared workspace dependency first (required for TypeScript declarations) +RUN --mount=type=cache,id=pnpm-store,target=/root/.local/share/pnpm/store \ + pnpm --filter './packages/shared' run build # Build frontend (env vars injected at build time) RUN VITE_BE_API_URL=${VITE_BE_API_URL} VITE_BE_WS_URL=${VITE_BE_WS_URL} pnpm --filter './services/frontend' run build