Docker => 1.31.1
Jenkins => 2.174
安裝Docker
[root@localhost ~]# yum install -y docker
關(guān)于安裝Docker的步驟塌忽,詳情見我之前的博客
在Docker里面安裝軟件的鏡像膊存,我都是安裝的最新版本
安裝MySQL
[root@docker ~]# docker pull mysql
安裝Tomcat
[root@docker ~]# docker pull tomcat
安裝jenkins佳晶,這里要注意了挤巡,不能直接用jenkins這個(gè)鏡像捣郊,得用jenkins/jenkins這個(gè)鏡像,如果你用了jenkins鏡像的話袄简,后面安裝jenkins的相關(guān)插件會出錯(cuò)版本不兼容的情況
[root@docker ~]# docker pull jenkins/jenkins
在當(dāng)前用戶的家目錄里面創(chuàng)建一個(gè)jenkins_home目錄豺谈,用來存放jenkins運(yùn)行過程中所產(chǎn)生和文件,我的是直接放在/root/文件夾下
[root@docker ~]# mkdir -p /root/jenkins_home
生成一個(gè)可以運(yùn)行的容器
[root@docker ~]# docker run -d -v /root/jenkins_home/:/var/jenkins_home -p 8080:8080 -p 50000:50000 --name jenkins jenkins:jenkins
如果執(zhí)行這個(gè)命令的時(shí)候铝量,報(bào)
touch: cannot touch '/var/jenkins_home/copy_reference_file.log': Permission denied
Can not write to /var/jenkins_home/copy_reference_file.log. Wrong volume permissions?
這是因?yàn)闄?quán)限不足導(dǎo)致的倘屹,那就請執(zhí)行一下下面這條語句然后再啟動容器
[root@docker ~]# chown -R 1000:1000 /root/jenkins_home
啟動容器后我們找到下面這段日志
INFO:
(*************************************************************
(*************************************************************
(*************************************************************
Jenkins initial setup is required. An admin user has been created and a password generated.
Please use the following password to proceed to installation:
dc89901a2b3141539c6ba6ad5a20d6cc
This may also be found at: /var/jenkins_home/secrets/initialAdminPassword
(*************************************************************
(*************************************************************
(*************************************************************
或者用語句
[root@docker ~]# docker exec -it jenkins /bin/bash
[root@docker ~]# cat /var/jenkins_home/secrets/initialAdminPassword
來查看jenkins生成的密碼 dc89901a2b3141539c6ba6ad5a20d6cc
啟動完成后,我們用瀏覽器來訪問
我的地址是 http://192.168.0.177:8080 192.168.0.177是我的CentOS虛擬機(jī)地址
在管理員密碼里輸入我們之前查看到的密碼:dc89901a2b3141539c6ba6ad5a20d6cc
選擇安裝推薦的插件
等待插件全部安裝完成
創(chuàng)建第一個(gè)管理員用戶
輸入你的帳戶信息慢叨,點(diǎn)保存并完成
實(shí)例配置纽匙,默認(rèn)就好了
保存并完成后
就可以使用了
在創(chuàng)建一個(gè)新任務(wù)之前,我們安裝兩個(gè)插件拍谐,一個(gè)是Maven的插件哄辣,一個(gè)SSH的插件
系統(tǒng)管理->插件管理
在可選插件 搜索 Maven Integration 然后選擇 直接安裝
安裝完成后,再安裝SSH的插件 搜索 Publish Over SSH 然后選擇 直接安裝
安裝完成后赠尾,重啟jenkins
登陸
我們做一些配置 系統(tǒng)管理 -> 系統(tǒng)配置 -> Publish over SSH
在做配置之前力穗,我們要在CentOS端生成私鑰
[root@docker ~]# ssh-keygen -t rsa
Passphrase 生成私鑰時(shí)填寫的密碼,如果沒有填寫密碼气嫁,這里為空
Path to key 私鑰的路徑当窗,因?yàn)槲业氖窃贒ocker里面運(yùn)行,因?yàn)闄?quán)限的關(guān)系寸宵,這里會提示找不到文件
Key 私鑰的串崖面,打開私鑰文件獲得
Path to key 和 Key 二選一填寫
Name 給SSH Server取個(gè)名字,可以隨意取
Hostname 主機(jī)地址
Username 登陸用戶
Remote Directory 登陸后默認(rèn)打開的文件夾
配置完后梯影,點(diǎn)應(yīng)用 -> 保存
再配置 系統(tǒng)管理 -> 全局工具配置
因?yàn)槲沂亲叩腄ocker鏡像運(yùn)行巫员,因?yàn)闄?quán)限的原因,所以這里面的配置我都是選的自動安裝
安裝JDK
這里要注意甲棍,在Oracle網(wǎng)站下載的話简识,得輸入Oracle的用戶名和密碼,沒有的話感猛,創(chuàng)建一個(gè)七扰。
Git默認(rèn)
安裝Maven
點(diǎn)應(yīng)用 保存
這些配置好了,只有等第一次構(gòu)建項(xiàng)目的時(shí)候陪白,Jenkins才會去下載安裝相關(guān)的插件
這里要注意了颈走,如果沒有用Docker來啟Jenkins,那就可以用手動指定相關(guān)的路徑咱士。Git配置的時(shí)候立由,要指定到具體的文件
新建一個(gè)任務(wù)
輸入一個(gè)任務(wù)名稱 選擇構(gòu)建一個(gè)maven項(xiàng)目 確定
源碼配置
Repository URL 倉庫的URL
Credentials 配置登陸倉庫的用戶名和密碼
Branch Specifier (blank for 'any') 要拉取的分支
構(gòu)建觸發(fā)器
勾選 輪詢SCM 日程表 填 H/1 * * * * 每小時(shí)一次轧钓,按需配置。
Build
Root POM pom.xml文件路徑锐膜,一般都在項(xiàng)目的根目錄下面
構(gòu)建后操作
我們選擇 Send build artifacts over SSH
這個(gè)配置就是構(gòu)建完成后毕箍,我們把項(xiàng)目根目錄下面的target/visa.war自動發(fā)送到我們在基礎(chǔ)配置里面配置的路徑/root/tomcat/publish文件夾里面
Remote directory 遠(yuǎn)程目錄,我們直接放根目錄枣耀,所以留空
Exec command 先不做任何操作
應(yīng)用 保存 到以下頁面霉晕。
點(diǎn)立即構(gòu)建 然后 轉(zhuǎn)到 控制臺輸出 就可以看到構(gòu)建日志了
控制臺輸出
直到看到這個(gè)庭再,我們就構(gòu)建成功了
然后我們在服務(wù)器路徑
/root/test_jenkins_home/workspace/visa/target 下面找到 visa.war 文件了
也能在
/root/tomcat/publish 下面找到visa.war 文件了
到這一步為止捞奕,我們構(gòu)建完項(xiàng)目后,就能生成一個(gè)項(xiàng)目的 war 包了拄轻。
這里我們先用Docker來打包鏡像后部署項(xiàng)目
在/root/tomcat/publish下面新建Dockerfile
[root@docker ~]# vim /root/tomcat/publish/Dockerfile
輸入以下代碼
from docker.io/tomcat:latest #你的 tomcat的鏡像
MAINTAINER visa_test@163.com #作者
COPY visa.war /usr/local/tomcat/webapps #放置到tomcat的webapps目錄下
保存
生成一個(gè)名為visa的鏡像 記得后面有一個(gè)點(diǎn)颅围,很重要。
[root@docker ~]# docker build -t visa .
啟動新的名為visa的容器恨搓,用visa的鏡像
[root@docker ~]# docker run -p 80:8080 --name visa visa
到這里為止院促,項(xiàng)目就能啟動成功了
下面進(jìn)行自動化部署配置
點(diǎn)配置后找到構(gòu)建后操作
在Exec command 中輸入
cd /root/tomcat/publish
docker stop visa
docker rm visa
docker rmi visa
docker build -t visa .
docker run -p 80:8080 --name visa visa
因?yàn)槲覀兠看沃灰c(diǎn)構(gòu)建,我們就完成整個(gè)流程的自動化斧抱。所以上面這一些命令常拓,就是一套組合
cd /root/tomcat/publish => 定位到發(fā)布目錄
docker stop visa => 停止之前已運(yùn)行的容器
docker rm visa => 刪除之前啟用的容器
docker rmi visa => 刪除之前構(gòu)建好的鏡像
docker build -t visa . => 重新構(gòu)建本次新的鏡像
docker run -p 80:8080 --name visa visa => 啟用并運(yùn)行新的容器