# --- 阶段一:构建阶段 (Build Stage) --- FROM registry.cn-chengdu.aliyuncs.com/azysrv/node:16.20.2-buster-slim AS build-stage ARG BUILD_ENV ENV NPM_CONFIG_REGISTRY=https://registry.npmmirror.com # 设置容器内的工作目录 WORKDIR /app # 利用 Docker 缓存机制:先拷贝 package.json COPY package*.json ./ # 安装依赖 RUN npm install # 拷贝所有源代码 COPY . . # 执行打包命令(通常生成 dist 目录) RUN npm run build # --- 阶段二:生产阶段 (Production Stage) --- FROM registry.cn-chengdu.aliyuncs.com/azysrv/nginx_npm:1.21 AS production-stage # --- 阶段二重新声明变量 --- ARG BUILD_ENV RUN sed -i 's/8080/4040/' /etc/nginx/conf.d/http.conf COPY --from=build-stage /app/dist/ /opt/webroot/