#syntax=harbor.XXXX.com/docker/dockerfile:experimental
# 第一行必须保留
# 使用 docker 的扩展功能 build 镜像
# ---- build 阶段,主要用于 build node 项目 ---- #
# 使用 node 12.13.0 build 为 builder
FROM harbor.XXX.com/base-images/node:12.13.0-slim as builder
# 配置环境 BUILD_ENV 都 build-arg 注入,默认为 test
# 此参数用于配置 npm build env
ARG BUILD_ENV=test
# 配置默认工作空间
WORKDIR /app
# 复制所有文件到默认项目空间
COPY . .
# 挂载缓存文件,且 build 项目
#RUN --mount=type=cache,target=/app/node_modules \
# --mount=type=cache,target=/root/.npm \
RUN yarn &&\
yarn build:${BUILD_ENV}
# ---- 创建 nginx 镜像,为最终使用的镜像 ----#
FROM harbor.XXX.com/docker-images/nginx:1.17.6-alpine as app
#copy builder (上一个阶段的容器) 的 /app/dist 目录到 /app/dist /usr/share/nginx/html
COPY --from=builder /app/dist /usr/share/nginx/html
EXPOSE 80
FROM harbor.XXXX.com/docker-images/nginx:1.17.6-alpine
#copy builder (上一个阶段的容器) 的 /app/dist 目录到 /app/dist /usr/share/nginx/html
COPY default.conf /etc/nginx/conf.d/default.conf
COPY dist /usr/share/nginx/html
EXPOSE 80