天天看點

解決gitlab-ci 自動編譯時 fatal: unable to access 'http://gitlab-ci-token:xxxxxxxxxxxxxxxxxxxx

最近項目的版本控制嘗試使用 GIT ,并搭建了gitlab伺服器,由于管理代碼。并嘗試使用gitlib的 CI/CD功能,實作項目的持續疊代部署。

在經曆了痛苦的摸索嘗試之後,終于能成功的編譯部署項目。

但是在某次 網絡管理者進行伺服器網絡維護時,把docker0的網絡配置删除了。

導緻使用gitlab-ci自動編譯代碼時報以下錯誤!

fatal: unable to access 'http://gitlab-ci-token:[email protected]/ihsp/unicorn-common.git/': Failed to connect to 172.16.0.26 port 80: Host is unreachable

Running with gitlab-ci-multi-runner 9.5.1 (96b34cc)
  on basicSC-pojo (1bb42af4)
Using Docker executor with image maven:3.5.3-jdk-8 ...
Using docker image sha256:92a89eeed32e806c4fbc21a7971a5d8f6a04936de1d8e7f3f68a1390f813febf for predefined container...
Pulling docker image maven:3.5.3-jdk-8 ...
Using docker image maven:3.5.3-jdk-8 ID=sha256:878388a112cc040e350e848dd39bf1cabc09653adb7ede6f050cbd16a7503de6 for build container...
Running on runner-1bb42af4-project-4-concurrent-0 via localhost.localdomain...
Cloning repository...
Cloning into '/builds/ihsp/basicSC-pojo'...
fatal: unable to access 'http://gitlab-ci-token:[email protected]/ihsp/basicSC-pojo.git/': Failed to connect to 172.16.0.26 port 80: Host is unreachable
ERROR: Job failed: exit code 1
           

由于對于linux 和gitlab-ci 膚淺了解,一直不知道是什麼原因造成的。

先是重裝了 gitlab-ci-multi-runner ,未能解決問題。

然後陷入思考,在詳細檢視錯誤之後,意識到這個錯誤是由于 docker 容器無法通路宿主主機導緻的。

docker容器與宿主主機是預設是通過 docker0 網橋聯通的。

于是重新配置docker0網橋

配置橋接網絡

停止docker服務
systemctl stop docker
關閉docker0橋接網卡
ip link set dev docker0 down

設定橋接網絡ip
ip addr add 172.16.0.199/24 dev docker0
啟動docker0網卡
ip link set dev docker0 up

啟動docker服務
systemctl start docker
           

重新運作自動部署成功!問題解決!

繼續閱讀