FROM node:alpine AS builder WORKDIR /workspace # 指定工作目录 COPY yarn.lock . COPY package.json . # 拷贝安装依赖使用到的项目文件 yarn.lock 与 package.json 到当前目录 RUN yarn # 安装依赖,yarn.lock 与 package.json 内容不改变的情况下第二次及之后的构建可以命中缓存
COPY public public COPY src src # 拷贝打包阶段用到的源码文件等,排除其他打包阶段不需要的文件可以更有效率使用缓存 RUN yarn run build # 打包
FROM nginx:alpine # 从另一个基础镜像开始构建最终的镜像 COPY nginx.conf.template /etc/nginx/templates/app.conf.template # 拷贝 nginx 配置模版 COPY --from=builder /workspace/build /usr/share/nginx/html # 从上个阶段的镜像 builder 中拷贝打包好的静态资源到 nginx 默认静态文件目录
|