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
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