gitlab ci cd

78 阅读1分钟

1. 安装gitlab runner

 docker run -d --name gitlab-runner --restart always \
     -v /srv/gitlab-runner/config:/etc/gitlab-runner \
     -v /var/run/docker.sock:/var/run/docker.sock \
     gitlab/gitlab-runner:latest

2.注册runner

进入容器内部

docker exec -it gitlab-runner /bin/bash

注册runner

docker run --rm -v /srv/gitlab-runner/config:/etc/gitlab-runner gitlab/gitlab-runner:latest register \
  --non-interactive \
  --executor "docker" \
  --docker-image alpine:latest \
  --url "https://gitlab.com/" \
  --registration-token "GR13489413LbGydEaypN28Fr97nvH" \
  --description "test" \
  --tag-list "test" \
  --run-untagged="true" \
  --locked="true" \
  --access-level="not_protected"

此处token为

image.png 注册成功之后在gitlabrunner处生成一个可用的runner

3.编写.gitlab-ci.yml文件

在项目根目录创建.gitlab-ci.yml文件

image: node:alpine

stages:
  - install
  - build
  - deploy

cache:
  key: hello-vue-cache
  paths:
    - node_modules

job_install:
  stage: install
  tags:
    - test
  script:
    - npm install

job_build:
  stage: build
  tags:
    - test
  script:
    - npm run build

job_deploy:
  stage: deploy
  image: docker
  tags:
    - test
  script:
    - docker build -t viteimages .
    - if [ $(docker ps -aq --filter name=myvite-container) ]; then docker rm -f myvite-container;fi
    - docker run -d -p 8002:80 --name myvite-container viteimages

4.编写Dockerfile

项目根目录创建Dockerfile文件

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/dist /usr/share/nginx/html

5.提交代码生成流水线