SpringBoot+Docker+Git+Jenkins實現簡易的持續整合和持續部署
努力了這麼久,但凡有點兒天賦,也該有些成功的跡象了。
前言
本篇文章引導你使用Jenkins
部署SpringBoot
專案,同時使用Docker
和Git
實現簡單的持續整合和持續部署。(專案地址:sso-merryyou)
流程圖如下:
push
程式碼到Github
觸發WebHook
。(因網路原因,本篇使用gitee)Jenkins
從倉庫拉去程式碼mavem
構建專案- 程式碼靜態分析
- 單元測試
build
映象push
映象到映象倉庫(本篇使用的映象倉庫為網易映象倉庫)- 更新服務
Jenkins安裝
下載jenkins
初始化密碼
選擇外掛
進入使用者自定義外掛介面,選擇第二個(因為我們本次構建使用的為Pipelines
)
勾選與Pipelines
相關的外掛
等待外掛安裝完成
配置使用者名稱和密碼
全域性配置
系統管理-》全域性工具配置 配置Git,JDK和Maven
安全配置
系統管理-》全域性安全配置
- 勾選Allow anonymous read access
- 取消防止跨站點請求偽造
新建任務
新建任務-》流水線
構建指令碼
勾選觸發遠端構建 (WebHooks觸發地址),填寫簡單的Pipeline script
#!groovy
pipeline{
agent any
stages {
stage('test' ){
steps {
echo "hello world"
}
}
}
}
測試指令碼
立即構建
控制檯輸出
gitee整合WebHooks
新增SSH公匙
配置WebHooks
修改指令碼
修改Pipeline script
#!groovy
pipeline{
agent any
//定義倉庫地址
environment {
REPOSITORY="https://gitee.com/merryyou/sso-merryyou.git"
}
stages {
stage('獲取程式碼'){
steps {
echo "start fetch code from git:${REPOSITORY}"
//清空當前目錄
deleteDir()
//拉去程式碼
git "${REPOSITORY}"
}
}
stage('程式碼靜態檢查'){
steps {
//虛擬碼檢查
echo "start code check"
}
}
stage('編譯+單元測試'){
steps {
echo "start compile"
//切換目錄
dir('sso-client1') {
//重新打包
bat 'mvn -Dmaven.test.skip=true -U clean install'
}
}
}
stage('構建映象'){
steps {
echo "start build image"
dir('sso-client1') {
//build映象
bat 'docker build -t hub.c.163.com/longfeizheng/sso-client1:1.0 .'
//登入163雲倉庫
bat 'docker login -u [email protected] -p password hub.c.163.com'
//推送映象到163倉庫
bat 'docker push hub.c.163.com/longfeizheng/sso-client1:1.0'
}
}
}
stage('啟動服務'){
steps {
echo "start sso-merryyou"
//重啟服務
bat 'docker-compose up -d --build'
}
}
}
}
Pipeline的幾個基本概念:
- Stage: 階段,一個Pipeline可以劃分為若干個Stage,每個Stage代表一組操作。注意,Stage是一個邏輯分組的概念,可以跨多個Node。
- Node: 節點,一個Node就是一個Jenkins節點,或者是Master,或者是Agent,是執行Step的具體執行期環境。
- Step: 步驟,Step是最基本的操作單元,小到建立一個目錄,大到構建一個Docker映象,由各類Jenkins Plugin提供。
測試
docker-compose up -d
啟動服務
修改內容效果如下:
更多效果圖
程式碼下載
推薦文章
������關注微信小程式java架構師歷程
上下班的路上無聊嗎?還在看小說、新聞嗎?不知道怎樣提高自己的技術嗎?來吧這裡有你需要的java架構文章,1.5w+的java工程師都在看,你還在等什麼?
相關推薦
SpringBoot+Docker+Git+Jenkins實現簡易的持續整合和持續部署
努力了這麼久,但凡有點兒天賦,也該有些成功的跡象了。 前言 本篇文章引導你使用Jenkins部署SpringBoot專案,同時使用Docker和Git實現簡單的持續整合和持續部署。(專案地址:sso-merryyou) 流程圖如下:
Jenkins學習總結(3)——Jenkins+Maven+Git搭建持續整合和自動化部署的
前言 持續整合這個概念已經成為軟體開發的主流,可以更頻繁的進行測試,儘早發現問題並提示。自動化部署就更不用說了,可以加快部署速度,並可以有效減少人為操作的失誤。之前一直沒有把這個做起來,最近的新專案正好有機會,費了一番功夫總算搞好了,特此記錄。 1. 開發環
TeamCity持續整合和持續交付Docker
TeamCity伺服器 - 強大的持續整合和持續交付功能該映象適用於生產用途和評估目的。鏡像標籤docker映像中的所有預設標記都指向Linux映像。 Windows Docker映象有後綴-windowsservercore 和-nanoserverjetbrains/te
利用Travis CI+GitHub實現持續整合和自動部署
前言 如果你手動部署過專案,一定會深感持續整合的必要性,因為手動部署實在又繁瑣又耗時,雖然部署流程基本固定,依然容易出錯。 如果你很熟悉持續整合,一定會同意這樣的觀點:“使用它已經成為一種標配”。 什麼是持續整合 Continuous Integration(CI) is a development p
CI/CD 持續整合和持續交付 (一)
在網際網路時代,對於每一個企業,公司,產品快速迭代的重要性不言而喻,針對敏捷開發以使用CICD來完成。但是持續整合和持續交付(CI/CD)其實並沒有那麼容易實現,開發和運維總是忙裡忙外,最後還吃力不
CI/CD 持續整合和持續交付 (二)
根據上次的文章介紹,制定了一套解決方案 此套方案 作為 PaaS 或者SaaS 都是棒棒的,結合著openstack 作為IaaS層 更適合, 整體的思路大概是這樣的,後續會詳細介紹。 客戶或產品有新的需求變更,或者測試人員提出bug時,會在redmine服務上建立提交事
Jenkins-Docker-SpringBoot-java-git-gradle-持續整合與自動部署-實現跨伺服器部署
1.首先你需要在git倉庫中有一份可作為服務啟動的springboot程式碼。 可選擇方案(github-國外,Gitee國內,自己搭建私有倉庫): 1.1 如果你只是為了測試或者你的專案是開源的,可以選擇github(國外),因為github私有專案需要收費,你懂的。gi
.NET Core部署到linux(CentOS)最全解決方案,入魔篇(使用Docker+Jenkins實現持續整合、自動化部署)
通過前面三篇: [.NET Core部署到linux(CentOS)最全解決方案,常規篇](http://blog.rdiframework.net/article/244) [.NET Core部署到linux(CentOS)最全解決方案,進階篇(Supervisor+Nginx)](http://bl
docker+jenkins+maven+gitlab搭建整合java持續整合環境(待完成)
環境:虛擬機器下centos7 首先配置jdk: mkdir /usr/local/java 下載jdk1.8:官網:https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133
IDEA+maven+java+TestNG+git+jenkins 第八篇自動化的持續整合
1、安裝JDK,設定環境變數,這裡就不講了網上都有教程; 2、新建一個maven專案,編寫程式,這裡也不講了前面七篇講過了; 3、安裝jenkins,也很簡單,可以直接安裝在windwos系統上也可安裝到tomcat中還可以安裝到應用伺服器中; 4、在jenkins中安裝相應的外掛,主要
Asp.net Core 使用Jenkins + Dockor 實現持續整合、自動化部署(二):部署
前面又是廢話 我之前寫過: Asp.Net Core 程式部署到Linux(centos)生產環境(一):普通部署 Asp.Net Core 程式部署到Linux(centos)生產環境(二):docker部署 大家可能會有疑問,分散式環境當中的部署還是跟我們在windows一樣,一臺機一臺機的去
Asp.net Core 使用Jenkins + Dockor 實現持續整合、自動化部署(一):Jenkins安裝
寫在前面 其實園子裡很多大佬都寫過,我也是一個搬運工很多東西不是原創的,不過還是想把自己安裝的過程,記錄下來如果能幫到大家的忙,也是一件功德無量的事; 執行環境 centos:7.2 cpu:1核 2G記憶體 1M頻寬 其實用的騰訊雲 安裝jenkins 這裡的jenkins就不從docker
基於jenkins構建應用的docker映象做持續整合和部署
為了做持續的整合和部署,引入了jenkins,利用jenkins來構建應用的docker映象並push到私有倉庫,然後再基於應用的docker映象來發布專案,這樣減少了很多的手動操作,基本能實現持續整合
從0到1體驗Jenkins+Docker+Git+Registry實現CI自動化釋出
一、前言 Jenkins是一款開源 CI&CD 軟體,用於自動化各種任務,包括構建、測試和部署軟體。Jenkins 支援各種執行方式,可通過系統包、Docker 或者通過一個獨立的 Java 程式。Jenkins是一個廣泛用於持續構建的視覺化Web工具,持續構建就是將專案自動化編譯、打包、部署。
Jenkins+Sonar搭建持續整合和程式碼質量檢查環境
Jenkins+Sonar搭建 一、相關環境及下載地址 二、軟體安裝 Jenkins安裝 命令:dpkg –i jenkins_2.121.3_all.deb 若有報錯,執行# apt-get update 和# apt-get –f install, # ln -s /opt/jdk1.8.0_131/b
Docker安裝Jenkins實現自動化構建部署到Tomcat
安裝Docker 安裝VirtualBox 安裝Jenkins 安裝好docker-toolbox之後啟動Terminal 開啟virtualbox,然後等待下載好boot2docker.iso,下載好之後就可以看到virtualbox就
Azure Terraform(八)利用Azure DevOps 實現Infra資源和.NET CORE Web 應用程式的持續整合、持續部署
一,引言 上一篇講解到利用 Azure DevOps 將整個 Azure Web App,Azure Traffic Manager profile,Azure Storage Account,Azure Key Vault 部署到 Azure 上,我們也知道整個 Infra 架構已經實現了自動化部署,而
CI與CD--從持續整合到持續交付
產品研發生命週期演化史: 1 純人肉構建 這是發生在我身上的7年前的故事,我們的專案每週四會發佈一個新版本,大家在每週四的晚上買好乾糧飲料熬夜苦戰。研發人員先提交程式碼,你merge我我merge,忙得不可開交;測試人員們則無事可做耐心等待。夜晚10點鐘,研發人員終於憋出來一個build的過
SpringBoot | 第十章:Swagger2的整合和使用
前言 前一章節介紹了mybatisPlus的整合和簡單使用,本章節開始接著上一章節的使用者表,進行Swagger2的整合。現在都奉行前後端分離開發和微服務大行其道,分微服務及前後端分離後,前後端開發的溝通成本就增加了。所以一款強大的RESTful API文件就至關重要了。而
CI持續整合系統環境---部署gerrit環境完整記錄
開發同事提議在線上部署一套gerrit程式碼稽核環境,廢話不多說,部署gerrit的操作記錄如下: 提前安裝好java環境,mysql環境,nginx環境 測試系統:centos6.5 下載下面三個包,放到/root目錄下(下載地址:http://pan.baidu.com/