Deploy gitlab-runner
Deploy using Helm, refer to: https://gitlab.com/gitlab-org/charts/gitlab-runner.git
1
|
helm install --namespace gitlab-managed-apps --name k8s-gitlab-runner -f values.yaml
|
Note: The values.yaml file must set privileged: true.
Build Base Image (Docker-in-Docker)
Content of the Dockerfile:
1
2
3
4
5
6
7
|
FROM docker:19.03.1-dind
WORKDIR /opt
RUN echo "nameserver 114.114.114.114" >> /etc/resolv.conf
RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories
RUN apk update
RUN apk upgrade
RUN apk add g++ gcc make docker docker-compose git
|
Build the image and push it to Harbor:
1
2
|
docker build -t registry.test.cn/devops/docker-tool:19.03.1 .
docker push registry.test.cn/devops/docker-tool:19.03.1
|
GitLab CI Test
Content of .gitlab-ci.yml:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
image: registry.test.cn/devops/docker-tool:19.03.1
variables:
REPO_NAME: gitlab.test.cn/xxx/xxxx
DOCKER_DRIVER: overlay2
DOCKER_TLS_CERTDIR: ""
before_script:
- mkdir -p $GOPATH/src/$(dirname $REPO_NAME)
- ln -svf $CI_PROJECT_DIR $GOPATH/src/$REPO_NAME
- cd $GOPATH/src/$REPO_NAME
stages:
- deploy
deploy:
tags:
- k8s-gitlab-runner # Specify runner
only:
- tags
stage: deploy
services:
- registry.test.cn/devops/docker-tool:19.03.1
script:
- export DOCKER_HOST='tcp://localhost:2375'
- docker login -u "$Harbor_bce_user" -p "$Harbor_ecs_passwd" $Harbor_ecs_address # Set global variables in GitLab UI
- make deploy VERSION=$CI_COMMIT_REF_NAME # Build image based on Git tag
|