# 设置依赖的基础 node 镜像
FROM node:latest as admin-dev

# 设置工作目录(相当于把你示例仓库里面的代码复制到这个目录下面)
WORKDIR /app

# 复制代码
COPY . .

# 添加依赖
RUN npm install

# 打包 （我的项目命令，打包是这个命令）
# 判断环境变量，执行不同打包命令，让前端代码里走不同环境的参数
ARG ENV_TYPE
RUN if [ "$ENV_TYPE" = "stage" ]; then \
  echo "当前是 stage 环境，执行 npm run build:stage"; \
  npm run build:stage; \
  elif [ "$ENV_TYPE" = "prod" ]; then \
  echo "当前是 prod 环境，执行 npm run build:prod"; \
  npm run build:prod; \
  else \
  echo "未指定环境变量，使用默认环境"; \
  npm run build; \
  fi

# nginx
FROM nginx:latest

# 把项目文件下的 default.conf (nginx的配置文件) 替换掉镜像内的
COPY default.conf /etc/nginx/conf.d/default.conf

# --from=admin-dev  可看第一行代码 我把第一个镜像起了一个别名 admin-dev
# 从上一个镜像里面复制已经打包好的 dist 文件，到 /usr/share/nginx/html 目录
COPY --from=admin-dev /app/dist /usr/share/nginx/html

# dockerfile 启动使用端口
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]