24 lines
1.4 KiB
Docker
24 lines
1.4 KiB
Docker
# 教程站构建镜像——CI 用 buildah(无 daemon)执行,本地 docker/podman build 同样可用。
|
||
# 基座=自家阿里云镜像仓(idealjs/node,由官方 node:24.21.0-bookworm-slim 转推;私有仓,需 login)。
|
||
# 默认公网端点(本地可用);阿里云同 region 的 CI 传 --build-arg BASE_REGISTRY=registry-vpc.cn-hangzhou.aliyuncs.com 走内网。
|
||
ARG BASE_REGISTRY=registry.cn-hangzhou.aliyuncs.com
|
||
FROM ${BASE_REGISTRY}/idealjs/node:24.21.0-bookworm-slim
|
||
|
||
ENV YARN_NPM_REGISTRY_SERVER=https://registry.npmmirror.com
|
||
WORKDIR /workspace
|
||
|
||
# ① 依赖配置——只拷贝清单/锁文件/yarn 运行时,源码变更不失效依赖层
|
||
COPY .yarnrc.yml package.json yarn.lock ./
|
||
COPY .yarn/releases/yarn-4.9.2.cjs .yarn/releases/
|
||
COPY apps/tutorial/package.json apps/tutorial/
|
||
COPY apps/design-lab/package.json apps/design-lab/
|
||
COPY packages/design-system/package.json packages/design-system/
|
||
COPY packages/stack-idealjs/package.json packages/stack-idealjs/
|
||
|
||
# ② 安装依赖——yarn 4.9.2 由 yarnPath(.yarn/releases)提供,node 直调脚本,不依赖 corepack/全局 yarn
|
||
RUN node .yarn/releases/yarn-4.9.2.cjs install --immutable
|
||
|
||
# ③ 打包——monorepo 全量源码(.dockerignore 瘦身,无 node_modules/dist);产物在 /workspace/apps/tutorial/dist
|
||
COPY . .
|
||
RUN node .yarn/releases/yarn-4.9.2.cjs workspace @stack/tutorial build
|