diff --git a/.cnb.yml b/.cnb.yml index 31d5a52f..dec65154 100644 --- a/.cnb.yml +++ b/.cnb.yml @@ -14,25 +14,30 @@ main: web_trigger_test: - docker: image: node:22-slim - volumes: - - /pnpm/store imports: https://cnb.cool/risenstars/iot-env/-/blob/main/env.yml stages: - - name: npm i -g corepack - script: | - npm config set registry https://mirrors.cloud.tencent.com/npm/ - npm i -g corepack - - name: pnpm install - script: | - pnpm config set registry https://mirrors.cloud.tencent.com/npm/ - pnpm install --frozen-lockfile + - name: build cach image + type: docker:cache + options: + dockerfile: cache.dockerfile + by: + - package.json + - package-lock.json + versionBy: + - package-lock.json + exports: + name: DOCKER_CACHE_IMAGE_NAME + + - name: use cache + image: $DOCKER_CACHE_IMAGE_NAME + commands: + - cp -r /.pnpm-store ./.pnpm-store + - name: build with cache + script: + - mv ./apps/web-tdesign/.env.production ./apps/web-tdesign/.env.production.back + - mv ./apps/web-tdesign/.env.pre ./apps/web-tdesign/.env.production + - pnpm run build:tdesign - - name: pnpm run build - script: pnpm run build - - - name: pnpm run build:tdesign:pre - script: pnpm run build:tdesign:pre - - name: 使用 rsync 复制文件 image: tencentcom/rsync settings: diff --git a/cache.dockerfile b/cache.dockerfile new file mode 100644 index 00000000..a18ab224 --- /dev/null +++ b/cache.dockerfile @@ -0,0 +1,22 @@ +FROM node:22-slim AS builder + +# --max-old-space-size +ENV PNPM_HOME="/pnpm" +ENV PATH="$PNPM_HOME:$PATH" +ENV NODE_OPTIONS=--max-old-space-size=8192 +ENV TZ=Asia/Shanghai + +RUN npm i -g corepack + +WORKDIR /app + +# copy package.json and pnpm-lock.yaml to workspace +COPY . . + +# 安装依赖 +RUN --mount=type=cache,id=pnpm,target=/pnpm/store pnpm install --frozen-lockfile + +RUN echo "Builder Success 🎉" + + +