一、前言
Jenkins作為CI、CD的先驅者,雖然現在的風頭沒有Gitlab強了,但是還是老當益壯,很多中小公司還是使用比較廣泛的,最近小編經歷了一次Jenkins發包,感徑訓不錯,所以自己學習了一下,網上比較多的教程都是在Linux上搭建Jenkins,小編經過一個星期的探索終于完成了在docker中進行搭建,
最終版就是:通過git上傳代碼--->使用Jenkins構建自動打包--->把jar包打成docker鏡像,運行在docker中,Windows下進行訪問
主要記錄一下一些踩過的坑和注意點,讓后來人能夠跟著小編一次完成!!
二、安裝Docker
安裝Docker
三、linux安裝jdk和maven
1、下載JDK8Linux版本
官網下載太慢了,小編這里為大家下載好了:
鏈接:百度網盤地址
提取碼:ov24
2、下載Maven
maven3.8.5下載鏈接
3、使用xftp上傳到linux上

4、解壓
解壓maven
tar -zxvf apache-maven-3.8.5-bin.tar.gz
重命名maven
mv apache-maven-3.8.5-bin.tar.gz apache-maven-3.8.5
解壓jdk
tar -zxvf jdk-8u333-linux-x64.tar.gz
重命名jdk
mv jdk-8u333-linux-x64.tar.gz jdk1.8
5、配置環境變數
進入環境變數檔案
vim /etc/profile
添加jdk和manven配置
輸入i,進入輸入模式
注意自己的安裝目錄,放在檔案最上面就行
JAVA_HOME=/usr/local/java/jdk1.8
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
PATH=$JAVA_HOME/bin:$PATH
export JAVA_HOME CLASSPATH PATH
export MAVEN_HOME=/usr/local/java/apache-maven-3.8.5
export PATH=${MAVEN_HOME}/bin:${PATH}
按下esc ,輸入:wq保存退出,

查看是否安裝成功
java -version
mvn -v

6、配置Maven加速鏡像
cd apache-maven-3.8.5/conf/
vim settings.xml
輸入i,進入輸入模式
<mirrors>
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
</mirrors>
按下esc ,輸入:wq保存退出,

四、Docker安裝Jenkins
1.準備掛載目錄
cd home/
mkdir jenkins_home
一定要賦予修改權限,不然掛載會失敗,我們這里給最高權限,
chmod -R 777 jenkins_home

2. 執行docker命令
docker run -di --name=myjenkins -p 8080:8080 -v /home/jenkins_home:/var/jenkins_home \
-v /usr/local/java/jdk:/usr/local/jdk1.8 \
-v /usr/local/java/apache-maven-3.8.5:/usr/local/apache-maven-3.8.5 \
-v $(which docker):/usr/bin/docker \
-v /var/run/docker.sock:/var/run/docker.sock jenkins/jenkins:lts
-v /home/jenkins_home:/var/jenkins_home:是對容器記憶體儲Jenkins的一些配置資訊的檔案夾
-v /usr/local/java/jdk:/usr/local/jdk1.8:是把linux下的jdk和容器內的關聯(配置Jenkins時使用)
-v /usr/local/java/apache-maven-3.8.5:/usr/local/apache-maven-3.8.5:是把linux下的maven和容器內的關聯(配置Jenkins時使用)
-v $(which docker):/usr/bin/docker -v /var/run/docker.sock:/var/run/docker.sock:是可以在Jenkins容器里使用我們Linux下的docker,
五、配置Jenkins
1. 進入Jenkins
輸入:http://192.168.84.133:8080/(ip+埠號)

2. 獲取密碼
docker logs 容器id



3. 安裝插件


4. 創建用戶

5. 保存配置地址

6. 配置插件鏡像


輸入:https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
點擊提交


7. 安裝ssh插件

安裝完成重啟一下Jenkins
8. 添加ssh登錄賬號憑據
點擊系統管理,找到下圖點擊



9. 配置全域ssh
點擊系統管理,找到系統配置

點擊新增:

點擊保存:

10. 配置jdk和maven
點擊系統管理,找到全域工具配置:


點擊保存
六、準備Springboot專案到git
1. 核心代碼
我們看到只是一個請求列印,我們最后訪問有docker成功,代表我們構建發包成功!

2. pom內容
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
<configuration>
<includeSystemScope>true</includeSystemScope>
</configuration>
</plugin>
</plugins>
</build>
3. yml檔案
這里只指定了埠號
server.port=8081
4. Dockerfile
和pom檔案同級
FROM java:8
COPY *.jar /app.jar
CMD ["--server.port=8080"]
EXPOSE 8080
ENTRYPOINT ["java", "-jar", "/app.jar"]
5. 上傳git倉庫

七、使用Jenkins部署專案
1. 新建任務


2. 添加git憑據


選擇剛剛添加的憑據報錯資訊消失

3. 添加maven構建


4. 增加構建執行shell

shell腳本:
#!/bin/bash
# 服務名稱
SERVER_NAME=jenkins
# 源jar名稱,mvn打包之后,target目錄下的jar包名稱
JAR_NAME=demo-0.0.1-SNAPSHOT
# jenkins下的目錄
JENKINS_HOME=/var/jenkins_home/workspace/jenkins
# 等待三秒
echo sleep 3s
sleep 1
echo sleep 2s
sleep 1
echo sleep 1s
sleep 1
echo "結束行程完成"
cd $JENKINS_HOME/target
cp $JENKINS_HOME/Dockerfile $JENKINS_HOME/target
# 修改檔案權限
chmod 755 $JAR_NAME.jar
echo "看看docker能不能用"
docker -v
echo "停止容器"
# 停止容器
docker stop springboot
echo "洗掉容器"
# 洗掉容器
docker rm springboot
echo "洗掉鏡像"
# 洗掉鏡像
docker rmi springboot
echo "打包鏡像"
# 打包鏡像
docker build -t springboot .
echo "運行鏡像"
# 運行鏡像
docker run -d -p 8081:8081 --name springboot springboot

5. 立即構建

6. 控制臺輸出報錯

我們看到打包成功了,就是在使用docker命令的時候出現權限問題,這是我們要給docker.sock權限就可以解決了!!
報錯資訊:
Got permission denied while trying to connect to the Docker daemon socket at
unix:///var/run/docker.sock: Post
"http://%2Fvar%2Frun%2Fdocker.sock/v1.24/containers/springboot/stop": dial unix
/var/run/docker.sock: connect: permission denied
解決方案:
chmod a+rw /var/run/docker.sock
7.在次構建
我們發現沒有報錯,也看到了容器的id

8. 查詢docker鏡像是否啟動
docker images
docker ps

9. Win10進行訪問測驗
輸入地址:http://192.168.84.133:8081/test/docker

七、總結
小編斷斷續續研究了一星期,太不容易了,中間也是遇到很多坑,只要是跟著小編走下去的基本都可以跑出來的!
看到這里還不給小編一鍵三連起來!!謝謝大家了哦~
有緣人才可以看得到的哦!!!
點擊訪問!小編自己的網站,里面也是有很多好的文章哦!
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/488677.html
標籤:Java
上一篇:map遍歷的5種方法分享
下一篇:如何才能把團隊給帶解散。。。
