日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

Jenkins 设置镜像_我常用的SpringBoot+Jenkins自动化部署技巧,贼好用,推荐给大家...

發(fā)布時間:2025/3/21 javascript 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Jenkins 设置镜像_我常用的SpringBoot+Jenkins自动化部署技巧,贼好用,推荐给大家... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

SpringBoot+Jenkins自動化部署技巧,遠程部署同樣適用,附通用自動化腳本!本文將從半自動化部署講起,到自動化部署,講解一套生產環(huán)境切實可用的自動化部署方案!

半自動化部署

之前寫過的SpringBoot應用打包Docker鏡像都是通過Maven插件來實現的,由于遠程服務器需要開發(fā)2375端口,存在一定的安全隱患。這次介紹另一種方法,使用DockerFile+Jar+自動化腳本的形式來部署。由于需要一定的手動操作,我把它稱之為半自動化部署。

項目打包

  • 這次我們不使用Docker的Maven插件來打包,先在pom.xml中注釋掉它;

  • 然后使用Maven的package命令直接將應用打成Jar包;

  • 此時在target目錄下就會生成一個Jar包,我們打包Docker鏡像的時候會用到它。

DockerFile

主要是定義了如何將Jar包打包成Docker鏡像,具體內容如下。

# 該鏡像需要依賴的基礎鏡像 FROM java:8 # 將當前目錄下的jar包復制到docker容器的/目錄下 ADD mall-tiny-jenkins-1.0-SNAPSHOT.jar /mall-tiny-jenkins-1.0-SNAPSHOT.jar # 聲明服務運行在8088端口 EXPOSE 8088 # 指定docker容器啟動時運行jar包 ENTRYPOINT ["java", "-jar","/mall-tiny-jenkins-1.0-SNAPSHOT.jar"] # 指定維護者的名字 MAINTAINER macro

自動化腳本

可以作為通用腳本來使用的模板腳本,只需改變其中的一些參數即可,具體執(zhí)行流程為:停止舊服務->刪除舊容器->刪除舊鏡像->打包新鏡像->運行新鏡像。

#!/usr/bin/env bash # 定義應用組名 group_name='mall-tiny' # 定義應用名稱 app_name='mall-tiny-jenkins' # 定義應用版本 app_version='1.0-SNAPSHOT' # 定義應用環(huán)境 profile_active='qa' echo '----copy jar----' docker stop ${app_name} echo '----stop container----' docker rm ${app_name} echo '----rm container----' docker rmi ${group_name}/${app_name}:${app_version} echo '----rm image----' # 打包編譯docker鏡像 docker build -t ${group_name}/${app_name}:${app_version} . echo '----build image----' docker run -p 8088:8088 --name ${app_name} --link mysql:db -e 'spring.profiles.active'=${profile_active} -e TZ="Asia/Shanghai" -v /etc/localtime:/etc/localtime -v /mydata/app/${app_name}/logs:/var/logs -d ${group_name}/${app_name}:${app_version} echo '----start container----'

下面講下自動化腳本里面值得注意的地方:

  • group_name、app_name、app_version可以用來定義打包鏡像的屬性;
  • profile_active可以讓你的應用使用不同環(huán)境下的配置,比如使用qa可以啟用測試環(huán)境的配置,使用prod可以啟用生產環(huán)境配置,真正的一包多用;
  • docker rmi這步一定要有,如果不刪除舊鏡像,當新鏡像打包的時候會產生none鏡像;
  • docker run命令中的-e TZ="Asia/Shanghai"時區(qū)一定要設置,否則容器時間會和宿主機會相差8個小時。

部署運行

  • 直接上傳我們的應用Jar包、DockerFile文件和自動化部署腳本到指定目錄下;

  • 將自動化腳本修改為可執(zhí)行;
chmod +x run.sh
  • 使用./run.sh命令直接運行腳本即可。

結合Jenkins自動化部署

之前的打包、上傳文件都是我們手動完成的,其實這些操作也可以讓Jenkins來幫我們實現,有了Jenkins才算得上是真正的自動化部署!

Publish Over SSH

這里推薦安裝這款Jenkins插件,它的主要作用是可以通過SSH在不同服務器之間傳輸文件和執(zhí)行命令。比如說我們把Jenkins裝在了測試服務器上,我們可以使用Jenkins在測試服務器上從Git倉庫獲取代碼,然后打成Jar包。打包完成后我們可以通過這個插件將Jar包傳輸到正式服務器上去,然后執(zhí)行正式服務器上的自動化腳本,從而實現正式服務器上的自動化部署。

  • 首先我們可以在系統(tǒng)管理->插件管理中找到該插件,然后進行安裝;

  • 然后在系統(tǒng)管理->插件管理中添加相應的SSH配置;

  • 配置完成后創(chuàng)建一個應用的構建任務,源碼管理和構建中的Maven打包配置和之前的Jenkins教程中一樣,只有最后一步不同,添加構建步驟為通過SSH發(fā)送文件并執(zhí)行命令;

  • 配置好我們的SSH Publisher,主要是源文件路徑和目標文件路徑,以及需要執(zhí)行的腳本;

  • 之后執(zhí)行構建任務即可實現自動化部署了,此方法在兩臺不同服務器之間同樣適用!

項目源碼地址

項目源碼:https://github.com/macrozheng/mall-learning/tree/master/mall-tiny-jenkins

總結

從我寫過的幾篇自動化部署文章中,其實可以看出,令來實現的。Jenkins的自動化部署也是基于這些的,所以要學會自動化部署,Linux命令和Docker命令是必不可少的!

如果大家喜歡我們的文章,歡迎大家轉發(fā),點擊在看讓更多的人看到。也歡迎大家熱愛技術和學習的朋友加入的我們的知識星球當中,我們共同成長,進步。

總結

以上是生活随笔為你收集整理的Jenkins 设置镜像_我常用的SpringBoot+Jenkins自动化部署技巧,贼好用,推荐给大家...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。