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为
注册成功之后在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