準備作業:需要下載好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
| Arabic | Hebrew | Polish |
| Bulgarian | Hindi | Portuguese |
| Catalan | Hmong Daw | Romanian |
| Chinese Simplified | Hungarian | Russian |
| Chinese Traditional | Indonesian | Slovak |
| Czech | Italian | Slovenian |
| Danish | Japanese | Spanish |
| Dutch | Klingon | Swedish |
| English | Korean | Thai |
| Estonian | Latvian | Turkish |
| Finnish | Lithuanian | Ukrainian |
| French | Malay | Urdu |
| German | Maltese | Vietnamese |
| Greek | Norwegian | Welsh |
| Haitian Creole | Persian |
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/544389.html
標籤:其他

