使用docker搭建jenkins自動化工具的實現(xiàn)
一、jenkins
Jenkins
是一個開源軟件項目,是基于Java
開發(fā)的一種持續(xù)集成工具,用于監(jiān)控持續(xù)重復的工作,旨在提供一個開放易用的軟件平臺,使軟件項目可以進行持續(xù)集成。
大家在工作中,應該都有使用過jenkins
自動化打包或發(fā)布,就比如我經常用到的就是將開發(fā)的項目自動化打包成docker
鏡像,實現(xiàn)一鍵打包,大大減少了我們的工作量,下面就一起學習下,jenkins
的安裝與使用。
二、基于docker 搭建 jenkins
本篇使用docker
和 docker-compose
對jenkins
進行搭建,所以在安裝前要保證服務器上已經安裝了docker
和 docker-compose
。如果是內網服務器,可以先關閉服務的防火墻,外網的話下面注意開放相應端口。
由于我們要在jenkins容器內部使用外部的docker命令,需要依賴libltdl.so.7
包,所以首先安裝這個 library:
yum install libltdl.so.7
安裝完之后,我的位置在/usr/lib64/libltdl.so.7
,最好確認下你的是不是這個位置。
下面創(chuàng)建jenkin數(shù)據存儲的地址:
mkdir /jenkins/jenkins_home
編寫docker-compose-jenkins.yaml
文件,寫入一下內容:
version: '3.1' services: jenkins: image: jenkins/jenkins:lts volumes: - /jenkins/jenkins_home/:/var/jenkins_home - /var/run/docker.sock:/var/run/docker.sock - /usr/bin/docker:/usr/bin/docker - /usr/lib64/libltdl.so.7:/usr/lib/x86_64-linux-gnu/libltdl.so.7 ports: - "8010:8080" expose: - "8080" - "50000" privileged: true user: root restart: always container_name: jenkins environment: JAVA_OPTS: '-Djava.util.logging.config.file=/var/jenkins_home/log.properties'
要在 CentOS7
的容器中使用宿主機上的命令,需要在容器中使用 root
用戶,也可以以 jenkins
用戶運行,但是需要把容器內的 jenkins
用戶加入到 docker
組中,通過 grep docker /etc/group
命令查看 docker
組的 GID
。
所以 user: root
表示在容器中以 root
用戶運行。/var/run/docker.sock:/var/run/docker.sock
表示 Docker
守護進程監(jiān)聽的 Unix
套接字。要在 Jenkins
容器中使用 docker
命令,則此選項是必需的。
下面啟動jenkins
鏡像:
docker-compose -f docker-compose-jenkins.yaml up -d
下面就可以在瀏覽器訪問了:http://192.168.216.140:8010
第一次使用 jenkins,需要解鎖,密鑰上面已經提示在什么位置了,由于我們將根目錄已經映射到本機的/jenkins/jenkins_home/
下,所以查看密鑰:
cat /jenkins/jenkins_home/secrets/initialAdminPassword
將上面密鑰填入,繼續(xù)可以看到新手入門,如果你不了解,就先下載推薦的插件,如果了解件下載針對性的插件,這里先安裝推薦的插件:
等待一會下載完成后,需要創(chuàng)建用戶,也可以使用admin
用戶,這里創(chuàng)建一個新用戶user
,然后繼續(xù):
下面一般不修改,直接繼續(xù),然后開始使用,就來到jenkins的主頁面了:
到這里jenkins就算安裝好了,如果要構建項目的話,還需要安裝maven插件,后面就可以構建maven項目了:
搜索Maven
:
然后等待一會下載完成。還需進行Maven的依賴下載:
直接新增一個maven,可以選擇在線安裝,也可以指定某個路徑,這里直接從Apache進行安裝:
下面就可以使用jenkins
實現(xiàn)SpringBoot項目的docker環(huán)境自動化打包和發(fā)布。
三、jenkins 自動發(fā)布 SpringBoot 鏡像
首先我們需要創(chuàng)建一個Git倉庫,也可以使用SVN,這里我在Gitee
上新建了一個倉庫,并放入了一個基本的SpringBoot
項目:
Dockerfile 文件的內容:
FROM openjdk:8-jdk COPY target/jenkins-demo-0.0.1-SNAPSHOT.jar /home/app/jenkins-demo.jar ENV LANG=UTF-8 ENV TZ=Asia/Shanghai WORKDIR /home/app/ CMD java -jar /home/app/jenkins-demo.jar
測試接口:
下面在jenkin中創(chuàng)建項目:
由于上面下載了Maven
的插件,這里我們可以直接選擇Maven
項目:
在General中,填寫項目的描述,并使用參數(shù)化構建 ,將每次打包的鏡像版本,傳遞進來:
參數(shù)命名為version,后面打包docker鏡像時會使用到:
下面在源碼管理中我們選擇Git:
點擊添加,輸入git的用戶名密碼,ID可以為空,系統(tǒng)會自動生成一個唯一ID:
選擇上面添加的用戶和密碼:
這里我就一個master
分枝,這里填寫master
:
在Build的地方,我們可以寫上打包的命令,這里可以省略mvn
:
clean package
在Post Steps
中我們選擇執(zhí)行Shell
的方式,可以寫打包docker鏡像的指令:
#!/bin/sh docker stop jenkins-demo docker rm jenkins-demo docker build -t jenkins-demo:${version} . docker run -itd --name jenkins-demo -p 8088:8080 jenkins-demo:${version}
點擊下面的保存,再次回到主頁,就會看到剛才添加的項目了:
下面構建該項目:
需要輸入版本:
在左下角可以看到執(zhí)行進度:
點進入也可以看到控制臺的打印:
第一次比較慢,等待一會就可以發(fā)現(xiàn),SpringBoot項目就已經啟動在docker中啟動起來了。
查看docker中的進程:
已經有我們打包的SpringBoot項目了,接口也可以正常訪問:
修改下程序,重新發(fā)布:
重新構建:
構建完成后,再次訪問測試接口:
到此這篇關于使用docker搭建jenkins自動化工具的實現(xiàn)的文章就介紹到這了,更多相關docker搭建jenkins自動化 內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
- Docker搭建Jenkins并自動化打包部署項目的步驟
- 使用Docker+jenkins+python3環(huán)境搭建超詳細教程
- docker+gitlab+jenkins從零搭建自動化部署
- docker搭建jenkins+maven代碼構建部署平臺
- docker搭建jenkins服務的示例
- Docker環(huán)境搭建Jenkins在構建任務時控制臺日志出現(xiàn)中文亂碼的問題
- 從零搭建docker+jenkins+node.js自動化部署環(huán)境的方法
- 詳解Docker下搭建Jenkins構建環(huán)境
- Linux環(huán)境下使用Docker搭建Jenkins容器的方法步驟
相關文章
Docker創(chuàng)建鏡像、怎么修改、上傳鏡像等詳細介紹
這篇文章主要介紹了Docker創(chuàng)建鏡像、怎么修改、上傳鏡像等詳細介紹的相關資料,需要的朋友可以參考下2016-12-12啟動Docker服務后顯示Docker Engine stopped解決辦法
這篇文章主要給大家介紹了關于啟動Docker服務后顯示Docker Engine stopped的解決辦法,文中通過圖文介紹的非常詳細,對大家學習或者使用Docker具有一定的參考借鑒價值,需要的朋友可以參考下2024-01-01使用Docker搭建MySQL主從數(shù)據庫的方法步驟
本文主要介紹了使用Docker搭建MySQL主從數(shù)據庫的方法步驟,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2023-01-01