From a4abdb4c0d20fc9b2e5fe5b333d1604a7225df27 Mon Sep 17 00:00:00 2001 From: nsfisis Date: Mon, 8 Dec 2025 02:01:40 +0900 Subject: feat(build): cache pnpm store --- docker/client/Dockerfile | 5 ++++- docker/server/Dockerfile | 10 ++++++++-- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/docker/client/Dockerfile b/docker/client/Dockerfile index 4647124..423f016 100644 --- a/docker/client/Dockerfile +++ b/docker/client/Dockerfile @@ -3,6 +3,8 @@ FROM node:22-slim AS builder WORKDIR /app +ENV PNPM_HOME="/pnpm" +ENV PATH="$PNPM_HOME:$PATH" # Enable corepack for pnpm RUN corepack enable && corepack prepare pnpm@10.23.0 --activate @@ -10,7 +12,8 @@ RUN corepack enable && corepack prepare pnpm@10.23.0 --activate COPY package.json pnpm-lock.yaml ./ # Install all dependencies (including devDependencies for build) -RUN pnpm install --frozen-lockfile +RUN --mount=type=cache,id=pnpm,target=/pnpm/store \ + pnpm install --frozen-lockfile # Copy source files needed for client build COPY tsconfig.json vite.config.ts index.html ./ diff --git a/docker/server/Dockerfile b/docker/server/Dockerfile index ffb2c29..300251b 100644 --- a/docker/server/Dockerfile +++ b/docker/server/Dockerfile @@ -3,6 +3,8 @@ FROM node:22-slim AS builder WORKDIR /app +ENV PNPM_HOME="/pnpm" +ENV PATH="$PNPM_HOME:$PATH" # Enable corepack for pnpm RUN corepack enable && corepack prepare pnpm@10.23.0 --activate @@ -10,7 +12,8 @@ RUN corepack enable && corepack prepare pnpm@10.23.0 --activate COPY package.json pnpm-lock.yaml ./ # Install all dependencies (including devDependencies for build) -RUN pnpm install --frozen-lockfile +RUN --mount=type=cache,id=pnpm,target=/pnpm/store \ + pnpm install --frozen-lockfile # Copy source files COPY tsconfig.json esbuild.mjs ./ @@ -24,6 +27,8 @@ FROM node:22-slim AS production WORKDIR /app +ENV PNPM_HOME="/pnpm" +ENV PATH="$PNPM_HOME:$PATH" # Enable corepack for pnpm RUN corepack enable && corepack prepare pnpm@10.23.0 --activate @@ -31,7 +36,8 @@ RUN corepack enable && corepack prepare pnpm@10.23.0 --activate COPY package.json pnpm-lock.yaml ./ # Install production dependencies only -RUN pnpm install --frozen-lockfile --prod +RUN --mount=type=cache,id=pnpm,target=/pnpm/store \ + pnpm install --frozen-lockfile --prod # Copy built server from builder stage COPY --from=builder /app/dist/server ./dist/server -- cgit v1.2.3-70-g09d2