aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authornsfisis <nsfisis@gmail.com>2025-12-08 02:01:40 +0900
committernsfisis <nsfisis@gmail.com>2025-12-08 02:21:37 +0900
commita4abdb4c0d20fc9b2e5fe5b333d1604a7225df27 (patch)
tree36f4e8625e684db29ad5adf8983baaabdd01fb8d
parent18fbdeca372996e37a58cf79b4d07b8c6afd7e75 (diff)
downloadkioku-a4abdb4c0d20fc9b2e5fe5b333d1604a7225df27.tar.gz
kioku-a4abdb4c0d20fc9b2e5fe5b333d1604a7225df27.tar.zst
kioku-a4abdb4c0d20fc9b2e5fe5b333d1604a7225df27.zip
feat(build): cache pnpm store
-rw-r--r--docker/client/Dockerfile5
-rw-r--r--docker/server/Dockerfile10
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