# 由壹点3D素材 - 基础镜像(包含所有依赖) # 用途:一次性构建,后续部署直接使用,零安装、零复制 ARG BASE_IMAGE=node:18-alpine FROM ${BASE_IMAGE} WORKDIR /app # 复制已解压的 Alpine 包并安装(一次性) COPY cache/alpine-apk /tmp/alpine-apk RUN echo "✅ 安装系统包(一次性)" && \ apk add --no-network --allow-untrusted /tmp/alpine-apk/*.apk && \ rm -rf /tmp/alpine-apk # 复制已解压的 node_modules(一次性) COPY cache/node_modules ./node_modules RUN echo "✅ node_modules 已就绪" && \ chmod -R +x node_modules/.bin # 复制 Prisma schema 并生成 Client(一次性) COPY prisma ./prisma RUN echo "✅ 生成 Prisma Client(一次性)" && \ npx prisma generate && \ rm -rf prisma # 标记为基础镜像 LABEL purpose="youyidian-3d-base" \ description="包含所有依赖的基础镜像" \ version="1.0" CMD ["echo", "这是基础镜像,不应该直接运行"]