Gitlab CICD部署前端项目

116 阅读1分钟
stages:          # 定义流水线阶段
  - deploy
  
job_deploy:
  stage: deploy  # 使用上面定义的阶段
  image: docker  # image表示使用docker容器来运行该job,镜像是有docker环境的镜像
  tags: 
    - node       # 指定使用哪个runner来运行
  script:        # 执行的shell命令
    # 根据当前项目根目录的dockerfile生成镜像
    - docker build -t reactimage . 
    # docker ps -aq --filter name=reactimage用于查看是否有运行的reactimage容器,
    # 如果有,则执行docker rm -f reactimage将运行的容器删除
    - if [ $(docker ps -aq --filter name=reactimage) ]; then docker rm -f reactimage;fi 
    # 启动新的docker容器
    - docker run -d -p 29000:80 --name reactimage reactimage

image.png

FROM node:latest as builder
WORKDIR /app
COPY package.json .
RUN npm install --registry=http://registry.npm.taobao.org
COPY . .
RUN npm run build


FROM nginx:latest
COPY --from=builder /app/build /usr/share/nginx/html

image.png