準備工作:需要下載好docker,這docker-compose,很簡單,這裡不做介紹。 1、使用docker安裝jenkins鏡像,這裡安裝的最新的jenkins版本,也可指定版本,按需選擇 docker pull jenkins/jenkins:latest 2、查詢jenkins鏡像是否安裝成 ...
準備工作:需要下載好docker,這docker-compose,很簡單,這裡不做介紹。
1、使用docker安裝jenkins鏡像,這裡安裝的最新的jenkins版本,也可指定版本,按需選擇
docker pull jenkins/jenkins:latest
2、查詢jenkins鏡像是否安裝成功
docker images
3、因為是使用jenkins來部署maven項目,所以需要jdk以及maven,因為我本機有下載好的jdk和maven,故直接進行目錄映射即可,運行以下命令啟動jenkins
docker run -u root -d \ -p 8080:8080 -p 50000:50000 \ -v /home/local/docker/jenkins/jenkins_home:/var/jenkins_home \ -- 映射的jenkins的目錄 -v /var/run/docker.sock:/var/run/docker.sock \ -v /usr/bin/docker:/usr/bin/docker \ -v /usr/local/bin/docker-compose:/usr/local/bin/docker-compose \ -v /usr/bin/docker-compose:/usr/bin/docker-compose \ -v /home/local/java/jdk1.8.0_351:/usr/local/java \ -v /home/local/maven/apache-maven-3.8.1:/usr/local/maven \ --name jenkins --privileged=true --restart=always jenkins/jenkins
-u : 選擇用戶 root最高許可權
-p : 埠映射,本機埠:容器埠
-v : 目錄掛載
jenkins_home:映射jenkins的目錄(配置、環境、工作目錄等)
/var/run/docker.sock 和 /usr/bin/docker: 可以簡單的理解映射這個目錄之後可以在jenkins中直接使用docker命令,具體想詳解參考:https://www.cnblogs.com/zhangmingcheng/p/16420449.html
docker-compose:在jenkins里使用docker-compose構建
--name : 容器名稱
--privileged=true : 在容器中擁有本機的root許可權
--restart=always : docker重啟時,會自動重啟容器
4、在瀏覽器訪問
本 機:http://localhost:8080/
伺服器(記得在安全組裡開啟8080埠):http://公網ip:8080/
第一次訪問會需要輸入用戶名:admin 和密碼,這個密碼jenkins會生成一個初始密碼,通過一下命令查看
# 進入jenkins容器內部
docker exec -it jenkins bash # 查詢初始密碼 cat /var/jenkins_mount/secrets/initialAdminPassword
登錄成功之後,選擇預設安裝插件,等待安裝插件完成,至此jenkins安裝成功
5、jenkins進行全局配置
jdk配置
maven配置
5、安裝jenkins的插件
需要選擇多分支構建的需要下載
6、新增maven項目
需要選擇不同分支構建填寫,單分支可以跳過這一步
添加git倉庫,這裡我選擇的gitee,添加你的gitee的賬號密碼或者是憑證
添加wehook檢測git代碼提交,進行代碼提交自動部署
在git中新增webhook,填入上一步拿到的url和密碼
回到jenkins中,繼續配置
這裡shell命令用於使用docker-compose運行項目
#!bash current_dir=$(pwd) echo '當前目錄:'+${current_dir} imgs_prefix=com.cai.project/ # 鏡像的首碼 imgs={'lucky-gateway-server' 'lucky-security-server'} # 鏡像名稱,這裡我採用的是服務名稱 containers={'lucky-cloud-lucky-security-server' 'lucky-cloud-lucky-gateway-server'} # 容器名稱 mvn install -Dmaven.test.skip=true -Dsource.skip # 清除後打包跳過單元測試 echo '停止並刪除容器' for container in ${containers} do docker stop `docker ps -a| grep `+${container}+`* | awk '{print $1}' ` docker rm `docker ps -a| grep `+${container}+`* | awk '{print $1}' ` done echo '刪除鏡像' for img in ${imgs} do docker rmi `docker images -a| grep `+${imgs_prefix}+${img}+` | awk '{print $3}' ` done docker-compose up -d --build
到此,就配置完成,當然在項目中我們也需要編寫dockerfile和docker-compose.yml文件
# dockerfile 文件,放在模塊的更目錄下
FROM openjdk:8 # 維護者信息 MAINTAINER cai <1415553710@qq.com> # 指定時區 RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone # 工作目錄 WORKDIR /app/gateway # 掛載目錄 VOLUME /app/gateway/logs # 添加 jar ADD ./target/*.jar gateway.jar # 暴露的埠號 EXPOSE 11001 # docker啟動時,運行的命令,這裡容器啟動時直接運行jar服務。 ENTRYPOINT ["sh", "-c", "exec java -Xloggc:/app/gateway/logs/gc.log -jar gateway.jar"]
# docker-compose.yml文件 ,放在項目的根目錄中
version: '3'
services:
# services的Id一般跟子項目的artifactId保持一致
lucky-gateway-server:
# 創建鏡像,會自動執行當前目錄下xxx文件夾中的Dockerfile文件
build: ./lucky-gateway-server
# 鏡像名:標簽名
image: "com.cai.project/lucky-gateway-server:latest"
ports:
- "11001:11001"
volumes:
- "/var/jenkins_home/logs/gateway:/app/logs"
lucky-security-server:
build: ./lucky-security-server
image: "com.cai.project/lucky-security-server:latest"
ports:
- "11002:11002"
volumes:
- "/var/jenkins_home/logs/security:/app/logs"
然後就可以進行構建測試了,
TRANSLATE with x English TRANSLATE with EMBED THE SNIPPET BELOW IN YOUR SITE Enable collaborative features and customize widget: Bing Webmaster Portal Back