解決Jenkins集成docker插件問題的一些方法
背景
測試環(huán)境使用Jenkins集成docker插件實現(xiàn)測試環(huán)境一鍵部署服務,首先jenkins已安裝docker build and publish插件,但是運營job出現(xiàn)了一系列的問題!
問題一
docker執(zhí)行報錯,Build step 'Docker Build and Publish' marked build as failure,導致這句的問題有很多,更詳細的錯誤信息:jenkins容器不支持docker操作?
分析問題:jenkins是使用docker部署的,那么在jenkins容器中并不會有docker相關的操作命令,所以執(zhí)行失?。?/p>
解決方案:需要將宿主機的docker環(huán)境映射到jenkins容器中,才能使用docker命令行
docker run --name myjenkins -p 8123:8080 -p 50000:50000 -v /run/docker.sock:/var/run/docker.sock -v /var/jenkins_home:/var/jenkins_home -u 0 -d jenkins/jenkins:lts
再次執(zhí)行,結果還是不對,沒有解決!
錯誤二
提示bin目錄下無可執(zhí)行命令?
分析:我們知道安裝的任何一個環(huán)境,如果想在linux環(huán)境執(zhí)行它的命令行,都需要加入環(huán)境變量:/usr/bin
解決:繼續(xù)映射宿主機docker可執(zhí)行命令
docker run --name myjenkins -p 8123:8080 -p 50000:50000 -v /run/docker.sock:/var/run/docker.sock -v $(which docker):/usr/bin/docker -v /var/jenkins_home:/var/jenkins_home -u 0 -d jenkins/jenkins:lts
tips:which命令,有點類似whereis 查找命令或者文件:前者查看系統(tǒng)環(huán)境變量中的命令(返回第一個結果),后者程序名相關路徑(返回所有匹配的結果)
錯誤三
找不到相關依賴:error while loading shared libraries: libltdl.so.7: cannot open shared object file: No such file or/libltdl.so.7
分析:jenkins容器內部,因為容器與宿主機沒有共享,在宿主機可以找到該庫:cd usr/lib64/
解決:在宿主機找到libltdl.so.7 依賴庫,掛載容器即可
docker run --name myjenkins -p 8123:8080 -p 50000:50000 -v /run/docker.sock:/var/run/docker.sock -v $(which docker):/usr/bin/docker -v /usr/lib64/libltdl.so.7:/usr/lib/x86_64-linux-gnu/libltdl.so.7 -v /var/jenkins_home:/var/jenkins_home -v /var/data/shell:/var/data/shell -u 0 -d jenkins/jenkins:lts
錯誤四
no basic auth credentials 沒有認證
分析原因:這個插件是在jenkins容器內部使用docker命令,build鏡像不會報錯,是在容器內,當需要push到鏡像倉庫時,需要auth
解決辦法:直接的辦法在jenkins的job中加入一行認證,docker login --username=xxxx --password=xxxx nexus.xxxx.com
tips:執(zhí)行完命令,會在當前目錄生成一個.credentials里面記錄了登錄nexus鏡像倉庫的帳號密碼信息
總結
至此,前面的步驟已經完成了jenkins容器內部可以使用docker命令了,也就不需要通過shh插件,從容器跳出到宿主機執(zhí)行build&push操作命令了,需要執(zhí)行啟動容器的腳本即可!
docker容器化,在宿主機與容器映射的任何東西都是同一個,也就是不管修改了宿主機掛載容器的文件還是容器中修改了掛載的宿主機文件都會同時被修改。
到此這篇關于解決Jenkins集成docker插件問題的一些方法的文章就介紹到這了,更多相關Jenkins集成docker插件內容請搜索本站以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持本站!
版權聲明:本站文章來源標注為YINGSOO的內容版權均為本站所有,歡迎引用、轉載,請保持原文完整并注明來源及原文鏈接。禁止復制或仿造本網站,禁止在非www.sddonglingsh.com所屬的服務器上建立鏡像,否則將依法追究法律責任。本站部分內容來源于網友推薦、互聯(lián)網收集整理而來,僅供學習參考,不代表本站立場,如有內容涉嫌侵權,請聯(lián)系alex-e#qq.com處理。