前言
gitlab 使用 dind
安装docker
1 2 3 4 5 6 7
| sudo yum install -y yum-utils sudo yum-config-manager
sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
systemctl start docker systemctl enable docker
|
安装runner
docker runner
https://docs.gitlab.com/runner/install/docker.html
1 2 3 4 5
| docker run -d --name gitlab-runner --restart always \ --env TZ=Asia/Shanghai \ -v /srv/gitlab-runner/config:/etc/gitlab-runner \ -v /var/run/docker.sock:/var/run/docker.sock \ gitlab/gitlab-runner:latest
|
注册
在gitlab-runner 内部, 执行
1 2 3 4 5 6 7 8 9
| gitlab-runner register -n \ --url https://gitlab.com/ \ --registration-token REGISTRATION_TOKEN \ --executor docker \ --description "My Docker Runner" \ --docker-image "docker:20.10.16" \ --docker-privileged \ --docker-pull-policy "if-not-present" \ --docker-volumes "/certs/client"
|
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 28 29 30 31 32 33 34
| image: docker:20.10.16
variables: DOCKER_TLS_CERTDIR: "/certs" DOCKER_REGISTRIES: aaa/develop aaaaaa/aaaaa IMAGE_TAG: ${CI_PROJECT_NAME}:${CI_PIPELINE_IID}
stages: - build - deploy
services: - docker:20.10.16-dind
build: before_script: - docker login -u $CI_SRE_USER -p $CI_SRE_PASSWORD sre stage: build script: - docker build -t default:$CI_COMMIT_SHA . - for rc in ${DOCKER_REGISTRIES}; do docker tag default:$CI_COMMIT_SHA ${rc}/${IMAGE_TAG} && docker push ${rc}/${IMAGE_TAG};done tags: - docker
deploy: stage: deploy image: centos:centos7.9.2009 script: - pwd - bash -ex ./.deploy/run.sh only: - master tags: - docker
|