一、安装gitlab-runner
1.安装查看我另外一篇文章很详细。
Gitlab CI/CD笔记-第三天-使用主机docker in docker 进行构建并push镜像。_A ?Charis的博客-CSDN博客
2.这篇文章的目的是使docker来构建镜像!
3.让docker使用你的主机的docker.sock构建镜像,也可以使用docker in docker的方式来实现。本文介绍docker使用你的主机的docker.sock。
二、注册一个使用了主机docker.sock 的docker执行器
1.在安装了gitlab-runer的主机上或者gitlan-runer的容器中执行:
sudo 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-volumes /var/run/docker.sock:/var/run/docker.sock
#可以在linux主机上或者在docker容器中安装了gitlab-runer的地方进行注册这个执行器。
-
--url https://gitlab.com/ \
-
--registration-token REGISTRATION_TOKEN \
##注意替换,不知道在哪儿看,看我的这篇文章的第二章的截图
gitlab CI/CD 安装 gitlab runner_A ?Charis的博客-CSDN博客
三、执行器的配置文件config.toml
[[runners]]
name = "My Docker Runner"
url = "http://10.10.2.183:8929/"
id = 9
token = "pjBVsQMaMT8WkypuubXy"
token_obtained_at = 2023-08-09T12:03:56Z
token_expires_at = 0001-01-01T00:00:00Z
executor = "docker"
environment = ["DOCKER_AUTH_CONFIG={\"auths\":{\"harbor.com:543\":{\"auth\":\"YWRtaW46Vk13YXJlMSE=\"}}}"]
[runners.cache]
MaxUploadedArchiveSize = 0
Insecure = false
[runners.docker]
tls_verify = false
image = "docker:20.10.16"
privileged = false
disable_entrypoint_overwrite = false
oom_kill_disable = false
disable_cache = false
shm_size = 0
volumes = ["/var/run/docker.sock:/var/run/docker.sock", "/cache"]
四、.gitlab-ci.yml
#第二步完成后,你才具备了使用docker来构建docker-image的能力,这个ci的流水线的任务必须要用这个执行器来跑。
stages: # List of stages for jobs, and their order of execution
- build-image
build-image-job:
stage: build-image
image: harbor.com:543/docker/docker:20.10.16
tags:
- docker ##这个很关键,选择执行你的具备docker 来构建的能力的执行器的tag。
variables:
CI_REGISTRY_PROJETY: harbor.com:543/spring_boot-ci
DOCKER_IMAGE_NAME: ci-java-web
DOCKER_IMAGE_TAG: v1
DOCKER_REGISTRY: harbor.com:543
DOCKER_REGISTRY_PASS: VMware1!
DOCKER_REGISTRY_USER: admin
before_script:
- mkdir -p $HOME/.docker
- echo $DOCKER_AUTH_CONFIG > $HOME/.docker/config.json
script:
- docker pull harbor.com:543/maven/maven:latest
- docker image ls
- docker tag maven:latest harbor.com:543/maven/maven:v1
- docker push harbor.com:543/maven/maven:v1
五、验证
六、重点
1、DOCKER_AUTH_CONFIG 使用了这个变量来传入私有harbor的信息,来进行登录。
2、docker 的image必须是docker:20.10.16
3、如果注册了runner修改了config.toml,一定要重启docker容器不是在容器内部执行gitlab-runner restart文章来源:https://www.toymoban.com/news/detail-654113.html
4、替换上面的variables,DOCKER_AUTH_CONFIG ,变量你可以直接拿来用。文章来源地址https://www.toymoban.com/news/detail-654113.html
到了这里,关于Gitlab CI/CD笔记-第二天-主机套接字进行构建并push镜像。的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!