ci: cache pnpm packages during image builds
This commit is contained in:
+8
-1
@@ -1,14 +1,21 @@
|
|||||||
|
# syntax=docker/dockerfile:1.7
|
||||||
|
|
||||||
# 构建 Vue 静态文件
|
# 构建 Vue 静态文件
|
||||||
FROM node:22-alpine AS build
|
FROM node:22-alpine AS build
|
||||||
|
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
|
|
||||||
# Corepack 随 Node 一起提供,用它固定使用项目的 pnpm。
|
# Corepack 随 Node 一起提供,用它固定使用项目的 pnpm。
|
||||||
|
ENV PNPM_HOME=/pnpm
|
||||||
|
ENV PATH=$PNPM_HOME:$PATH
|
||||||
RUN corepack enable
|
RUN corepack enable
|
||||||
|
|
||||||
COPY package.json pnpm-lock.yaml ./
|
COPY package.json pnpm-lock.yaml ./
|
||||||
COPY shared/package.json ./shared/package.json
|
COPY shared/package.json ./shared/package.json
|
||||||
RUN pnpm install --frozen-lockfile
|
# pnpm store 使用 BuildKit 持久缓存;依赖未变化时不会重新下载。
|
||||||
|
RUN --mount=type=cache,id=admin-web-pnpm-store,target=/pnpm/store \
|
||||||
|
pnpm config set store-dir /pnpm/store && \
|
||||||
|
pnpm install --frozen-lockfile
|
||||||
|
|
||||||
COPY . .
|
COPY . .
|
||||||
RUN pnpm test && pnpm build
|
RUN pnpm test && pnpm build
|
||||||
|
|||||||
Reference in New Issue
Block a user