1. 程式人生 > >jenkins+Docker持續化部署(筆記)

jenkins+Docker持續化部署(筆記)

配置 地址 技術分享 html https build target 參數 jenkins安裝

參考資料:https://www.cnblogs.com/leolztang/p/6934694.html (Jenkins(Docker容器內)使用宿主機的docker命令

https://container-solutions.com/running-docker-in-jenkins-in-docker/ (Running Docker in Jenkins (in Docker))

https://www.cnblogs.com/bigben0123/p/7886092.html (基於Jenkins,docker實現自動化部署(持續交互))

https://blog.csdn.net/bingoxubin/article/details/78720976 (jenkins和docker實現自動化構建部署)

https://segmentfault.com/a/1190000007837054 (Jenkins集成Docker鏡像實現自動發布)

https://blog.csdn.net/qq_26848099/article/details/78901240 (jenkins詳解)

https://www.cnblogs.com/panpan0301/p/7738249.html (jenkins定時任務)

https://blog.csdn.net/xinluke/article/details/52267995 (docker環境下Jenkins持續集成(一))

https://www.cnblogs.com/cheyunhua/p/8362069.html ( Docker:使用Jenkins構建Docker鏡像)

https://jpetazzo.github.io/2015/09/03/do-not-use-docker-in-docker-for-ci/

Jenkins安裝一般分兩種形式:直接安裝和docker形式安裝,為了方便移植建議用docker形式安裝

創建Dockerfile文件

FROM jenkins/jenkins:lts

USER root
RUN apt
-get update && apt-get install -y sudo && rm -rf /var/lib/apt/lists/* RUN echo "jenkins ALL=NOPASSWD: ALL" >> /etc/sudoers

構建鏡像

docker build -t jwh/jenkins .

啟動jenkins容器

docker run -d -v /usr/lib64/libltdl.so.7:/usr/lib/x86_64-linux-gnu/libltdl.so.7 -v /var/run/docker.sock:/var/run/docker.sock -v $(which docker):/usr/bin/docker --privileged -p 8888:8080 jwh/jenkins:v1
註意這兩個volume參數(將jenkins容器內的docker命令指向了宿主機):
-v /var/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 在centos7 系統下會出現個別的包丟失,對應的引下宿主機的包就可以。

配置jenkins
docker exec -it 52873fa3dce4 /bin/bash
cat /var/jenkins_home/secrets #查看密碼
安裝必須的插件後新建一個job
技術分享圖片

代碼在碼雲上,添加代碼地址以及git登錄賬號

技術分享圖片

5分鐘輪訓構建

技術分享圖片

使用shell腳本構建docker

技術分享圖片

if sudo docker ps -a|grep -i g-imagery-script-api;then
   sudo docker rm -f g-imagery-script-api
fi
#刪除已建的容器,防止容器名,端口沖突
sleep 1
cd /var/jenkins_home/workspace/g-imagery-script-api
sudo docker build -t jwh/g-imagery-script-api:v1 .    #根據dockerfile生成鏡像
sleep 1
sudo docker run -d -p 5010:5010 --name g-imagery-script-api jwh/g-imagery-script-api:v1    #運行鏡像生成容器

jenkins+Docker持續化部署(筆記)