目錄
1.【系列】CentOS 7.3 離線安裝(無網絡環境)CI CD環境之docker+docker compose
2.【系列】CentOS 7.3 離線安裝(無網絡環境)CI CD環境之gitlab + gitlab runner(docker in docker)
3.【系列】CentOS 7.3 離線安裝(無網絡環境)CI CD環境之harbor
4.【系列】CentOS 7.3 離線安裝(無網絡環境)CI CD環境之gitlab runner 關於私有docker倉庫配置 (本篇在此)
5.【系列】CentOS 7.3 離線安裝(無網絡環境)CI CD環境之sonarqube配置
1.為gitlab runner 所在的機器配置insecure-registries
因為docker默認是不允許使用http協議進行通信的,所有必須要做此配置,才可以是docker使用http協議連接倉庫
命令如下:
vim /etc/docker/daemon.json #如果沒有該文件則創建 #添加你的配置 { "registry-mirrors": [ "http://188.6.7.147" ], "insecure-registries": ["188.6.7.147"] } #重啟docker systemctl daemon-load systemctl restart docker.service
重啟docker服務后 使用docker login登陸測試以下
2.修改gitlab runner comfig.toml
增加docker.sock的映射,配置修改完如下:
concurrent = 1 check_interval = 0 [session_server] session_timeout = 1800 [[runners]] name = "gis-group-runner1" url = "http://188.6.7.131/" token = "qQZ1p2hETvf94F7hNFJt" executor = "docker" [runners.custom_build_dir] [runners.cache] [runners.cache.s3] [runners.cache.gcs] [runners.docker] tls_verify = false image = "Docker:19.03.11" privileged = true disable_entrypoint_overwrite = false oom_kill_disable = false disable_cache = false volumes = ["/var/run/docker.sock:/var/run/docker.sock", "/cache"] shm_size = 0 pull_policy = "if-not-present"
3.gitlab-ci.yml的配置
在gitlab runner docker in docker 中,一定要使用dind的docker鏡像在特權模式下運行腳本,這一點需要注意,否則會出現 dial tcp 188.6.7.147:443: connect: no route to host 的錯誤,具體gitlab-ci.yml配置如下:
image: docker:latest # before_script: # - "docker info" # - curl 188.6.7.147 # - docker login -u gitlab -p $CI_JOB_TOKEN $CI_REGISTRY stages: - build - docker_build build: stage: build image: $CI_REGISTRY/library/mcr.microsoft.com/dotnet/core/sdk:3.1 script: # - dotnet # - export DOCKER_HOST="tcp://docker:2375/" # - chcp 65001 - "dotnet restore k8s.NET.Demo.sln --interactive --source $NUGET_SOURCE" - "dotnet build --no-restore" # - "dotnet msbuild restore /p:RestoreSources=$NUGET_SOURCE" docker-build-and-push: stage: docker_build image: docker:latest services: # - docker:dind script: # - chcp 65001 - "docker info" - echo $CI_REGISTRY_TOKEN | docker login $CI_REGISTRY -u $CI_REGISTRY_USERNAME --password-stdin - docker build -t $CI_REGISTRY/test.gis/k8s.net.demo:0.1.1 . - docker push $CI_REGISTRY/test.gis/k8s.net.demo:0.1.1
然后提交代碼測試,結果如下:
至此,關於gitlab runner 結合內網harbor私庫的配置就完成,這里只講了關於docker鏡像的拉取和推送,關於結合k8s的自動部署沒有展開,會在后續文章中記錄。