摘要
任何簡單操作的背後,都有一套相當複雜的機制。本文將以SpringBoot應用的在Docker環境下的打包部署為例,詳細講解如何使用Jenkins一鍵打包部署SpringBoot應用。
Jenkins簡介
Jenkins是開源CI&CD軟件領導者,提供超過1000個插件來支持構建、部署、自動化,滿足任何項目的需要。我們可以用Jenkins來構建和部署我們的項目,比如說從我們的代碼倉庫獲取代碼,然後將我們的代碼打包成可執行的文件,之後通過遠程的ssh工具執行腳本來運行我們的項目。
Jenkins的安裝及配置
Docker環境下的安裝
下載Jenkins的Docker鏡像:docker pull jenkins/jenkins:lts
在Docker容器中運行Jenkins:
docker run -p 8080:8080 -p 50000:5000 --name jenkins \\
-u root \\
-v /mydata/jenkins_home:/var/jenkins_home \\
-d jenkins/jenkins:lts
Jenkins的配置
運行成功後訪問該地址登錄Jenkins,第一次登錄需要輸入管理員密碼:http://192.168.6.132:8080/docker logs jenkins從日誌中獲取管理員密碼:
角色權限管理
我們可以使用Jenkins的角色管理插件來管理Jenkins的用戶,比如我們可以給管理員賦予所有權限,運維人員賦予執行任務的相關權限,其他人員只賦予查看權限。
在系統管理->全局安全配置中啟用基於角色的權限管理:打包部署SpringBoot應用
這裡我們使用mall-learning項目中的mall-tiny-jenkins模塊代碼來演示下如何使Jenkins一鍵打包部署SpringBoot應用。
將代碼上傳到Git倉庫
首先我們需要安裝Gitlab(當然你也可以使用Github或者Gitee),然後將mall-tiny-jenkins中的代碼上傳到Gitlab中去,Gitlab的使用請參考:10分鐘搭建自己的Git倉庫mall-tiny-jenkins項目源碼地址:github.com/macrozheng/…上傳完成後Gitlab中的展示效果如下:執行腳本準備
將mall-tiny-jenkins.sh腳本文件上傳到/mydata/sh目錄下,腳本內容如下:#!/usr/bin/env bash
app_name='mall-tiny-jenkins'
docker stop ${app_name}
echo '----stop container----'
docker rm ${app_name}
echo '----rm container----'
docker run -p 8088:8088 --name ${app_name} \\
--link mysql:db \\
-v /etc/localtime:/etc/localtime \\
-v /mydata/app/${app_name}/logs:/var/logs \\
-d mall-tiny/${app_name}:1.0-SNAPSHOT
echo '----start container----'
給.sh腳本添加可執行權限:
chmod +x ./mall-tiny-jenkins.sh
windows下的.sh腳本上傳到linux上使用,需要修改文件格式,否則會因為有特殊格式存在而無法執行:
#使用vim編輯器來修改
vi mall-tiny-jenkins.sh
# 查看文件格式,windows上傳上來的默認為dos
:set ff
#修改文件格式為unix
:set ff=unix
#保存並退出
:wq
執行.sh腳本,測試使用,可以不執行:
./mall-tiny-jenkins.sh
在Jenkins中創建執行任務
首先我們需要新建一個任務:image.png
作者:MacroZheng
原文鏈接:https://juejin.im/post/5df780d3e51d4557ff140b30