1. 程式人生 > >利用gitlab、maven、docker自動構建web應用

利用gitlab、maven、docker自動構建web應用

      以前團隊每次構建應用都要通過Eclipse/STS匯出war包,然後再上傳到伺服器,拷貝到tomcat,還要手動停止/啟動tomcat服務,實在麻煩,還非常容易出錯。

      我利用gitlab、maven、docker工具,加上一個shell指令碼,做了個簡單的自動構建工具。

1.首先安裝jdk 64版、maven,修改/etc/profile檔案如下:

JAVA_HOME=/home/git/jdk1.8.0_161
JRE_HOME=$JAVA_HOME/jre
#CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/rt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib/rt.jar
export MAVEN_HOME=/home/git/src/apache-maven-3.5.2

PATH=$JAVA_HOME/bin:/home/git/apache-maven-3.5.2/bin:$PATH
export JAVA_HOME CLASSPATH JRE_HOME PATH
TZ='Asia/Shanghai'; export TZ

2.安裝docker,並利用docker安裝gitlab,可以參考我以前的部落格。https://blog.csdn.net/jzd1997/article/details/79297250

2.1 下載tomcat映象,並啟動。

sudo docker pull tomcat
sudo docker cp /etc/localtime gitlab:/etc/localtime   #解決容器和主機時間不一致問題

sudo docker run -d -p 8080:8080 --name customer tomcat

啟動後可以進入docker tomcat例項,確認tomcat存放位置。

sudo docker exec -it customer /bin/bash

[email protected]:/usr/local/tomcat# cd webapps/

[email protected]:/usr/local/tomcat/webapps# pwd

/usr/local/tomcat/webapps

[email protected]:/usr/local/tomcat/webapps# ls

CumstomerManageROOTexamples manager

CumstomerManage.wardocshost-manager

[email protected]:/usr/local/tomcat/webapps#

3.編寫自動構建指令碼檔案。

#!/bin/bash

#切換目錄
cd ~/customermanage_web/

#拉取最新程式碼
git pull

#生成war包
mvn package -Dmaven.test.skip=true

sudo docker restart customer

#拷貝war包
sudo docker cp ~/customermanage_web/target/CumstomerManage.war customer:/usr/local/tomcat/webapps

#重啟tomcat

sudo docker restart customer

完成後新增指令碼執行許可權。

chmod 755 deploy_customer.sh

ps.這個地方還解決了一個mvn打包編譯問題,mvn packge的時候提示

原因為Oracle在jdk7以後就對com.sun的所有包都退休了。

Synopsis: The Non-standard com.sun.image.codec.jpeg Package is Retired

Description: The com.sun.image.codec.jpeg package was added in JDK 1.2 (Dec 1998) as a non-standard way of controlling the loading and saving of JPEG format image files. This package was never part of the platform specification and it has been removed from the Java SE 7 release. The Java Image I/O API was added to the JDK 1.4 release as a standard API and eliminated the need for the com.sun.image.codec.jpeg package.

解決這個問題只需要在pom檔案當中新增

			<plugin>
				<artifactId>maven-compiler-plugin</artifactId>
				<version>2.5.1</version>
				<configuration>
					<compilerArgument>-XDignore.symbol.file</compilerArgument>
                                </configuration>

4. 執行指令碼,確認執行結果

./deploy_customer.sh

5. 剛才team member用了下覺得很方便,然後又提出了一個小需求,希望每天自動生成daily build版本,測試第二天一早就可以驗證最新的程式碼,實現也很簡單,在crontab中新增定時任務。

crontab -e


# m h  dom mon dow   command
0 1 * * * /home/git/deploy_customer.sh

第一個引數是分,第二個引數是小時,後面幾個*代表每天執行。

到這裡就結束後,後續如果有時間準備再折騰下Jenkins,實現持續整合。

相關推薦

利用gitlabmavendocker自動構建web應用

      以前團隊每次構建應用都要通過Eclipse/STS匯出war包,然後再上傳到伺服器,拷貝到tomcat,還要手動停止/啟動tomcat服務,實在麻煩,還非常容易出錯。      我利用gitlab、maven、docker工具,加上一個shell指令碼,做了個簡單

Jenkins+maven+git 實現自動構建許可權管理靜態程式碼檢測遠端部署傳送郵件功能

Jenkins配置 1. 使用者許可權設定 配置->Configure Global Security (注:想讓匿名使用者可以瀏覽jenkins網站 需勾選Overall 中的read 和 Job

快速建立SpringBoot2.x應用之工具類自動建立web應用SpringBoot2.x的依賴預設Maven版本

快速建立SpringBoot2.x應用之工具類自動建立web應用簡介:使用構建工具自動生成專案基本架構   1、工具自動建立:http://start.spring.io/   2、訪問地址:http://localhost:8080/ 開始下載,解壓,匯入Maven專案 匯入後:

5分鐘構建springbootmavenswagger專案

本文以寫demo的形式講述如何構建一個springboot專案,使用的專案管理及自動構建工具為maven,便於自測及API文件閱讀使用的是swagger。 首先以為新手構建各種踩坑,推薦快速構建網站:start.spring.io,移步於此,可一分鐘構建出sp

gitlab+jenkins+hook代碼自動構建發布上線

jenkins 名稱 成功 alt tla cnblogs settings 9.png 一個 Gitlab+Jenkins+Hook 1、gitlab和jenkins的安裝見: http://www.cnblogs.com/cuishuai/p/7544663.html

jenkins自動化部署項目4 -- 安裝和配置jdkmavengit

lib src 但是 cal 因此 jenkin 工具配置 span 部署 Jenkins提供了自動安裝jdk,maven,git的功能,在【系統設置-全局工具配置】裏,但是我自動安裝沒反應,因此我是先手工安裝和配置它們的環境變量然後再在【系統設置-全局工具配置】裏配置:

Win10安裝JdkMavenTomcat與配置詳解

文章目錄 前言 一、JDK的下載與配置環境變數 1.1 下載jdk1.8 1.2 安裝 1.3 配置環境變數 1.4 驗證 二、Maven的下載與相關配置 2.1 下載Maven 2

從碼雲上匯入maven專案到eclipse(解決匯入maven專案不自動構建的問題)

file—>import—>Projects from Git —>clone URL 但是我們發現我們匯入的是maven專案,但是他沒有幫我們構建maven專案的目錄結構。 把這個專案從控制檯移除,注意是移除,不要把本地檔案刪了。然後在匯入ma

基於Gitlab+Jenkins的測試環境自動構建和生產多環境手動釋出方案

需求說明: 專案和生產環境越來越多,專案的測試釋出和線上釋出任務繁重 本方案使用Gitlab+Jenkins實現測試環境自動構建和生產多環境手動控制釋出 實驗主機列表和功能: 192.168.77.100 CentOS7 gitlab 192.168.77.130 CentO

myeclipsemaventomcatjdk技巧和坑【待完善】

公司使用前後不分離或半分離的springmvc + maven ,自己不得不研究研究myeclipse、maven、tomcat等等開發環境搭建:坑一:  Unable to process Jar entry [COM/ibm/db2os390/sqlj/custom/DB2SQLJCustomizer.c

jenkins結合gitlab實現提交代碼自動構建

bsp .org pen webhook project 進行 比較 簡單 上傳 jenkins可以說是現在非常流行的一個繼續集成工具,幾乎所有的公司都在用,並且它也基本是devops的連接者,是一個比較核心的工具。 主要記錄以下兩個: 利用jenkins和gitlab的

ASP.NET Core 入門教程 2使用ASP.NET Core MVC框架構建Web應用

一、前言 1、本文主要內容 使用dotnet cli建立基於解決方案(sln+csproj)的專案 使用Visual Studio Code開發基於解決方案(sln+csproj)的專案 Visual Studio Code Solution外掛( vscode-solution-explorer)基礎使用

Eclipse下載安裝以及配置JDKMavenSVN

eclipse下載安裝以及配置jdk、maven (備註:Window電腦 64位作業系統) 步驟一:安裝eclipse,首先要安裝jdk, jdk下載地址:http://www.oracle.com/technetwork/java/javase/downlo

gitmavenjenkins學習隨手筆記

git  工作區  版本庫 建立倉庫  git init     mddir  gitproject cd gitproject ls touch 1.java 2.java  ls  git  init  ls -la cd .git/ head可以認為是個指標,可以

使用maven外掛自動部署web應用Docker容器的tomcat

此前在一篇文章有講到將maven專案部署至tomcat 本文就是將 maven-tomcat-plugins 和 Docker 結合起來,將web應用部署至Docker容器中正在執行的tomcat 配置maven 在pom.xml加入

Docker實踐-使用maven外掛自動部署web應用Docker容器的tomcat

本文就是將 maven-tomcat-plugins 和 Docker 結合起來,將web應用部署至Docker容器中正在執行的tomcat。配置maven在pom.xml加入 <plugins> <plugin>

jenkins+maven+git 實現自動構建

1  前置條件:a:首先要有gitlab的賬號,並有git私鑰。b:gitlub新增key2  Jenkins 的配置2.1 需要安裝外掛GitLab PluginJaCoCo PluginMaven integration pluginSSH PluginHTML Publ

gitlab實現webhook觸發jenkins 自動,構建,測試,push webhook構子 總結

ref 安裝 harbor 14. 允許 安全管理 rbo 觸發器 代碼 最新一直在學習 工作 + 學習 去掉 90% 所以blog 一直沒更 真是很不好! exsi ceph gitlab jenkins harbor k8s docker-compose ap

IntelliJ IDEA 問題總結之一 —— jar包assetsmavengit

由於工作需要,這幾天開始棄用eclipse,換idea。用了幾天,idea確實有些地方比較方便,但是麻煩也是不少。而且網上對應的資料並沒有eclipse那麼多,很多都是自己琢磨解決的,所以想弄個帖子來總結一下遇到的問題,做個記錄。 1、jar包。匯入一個工程,libs

mac 通過homebrew安裝gitmavensbtnodemakeautomakegccprotobufwine

1、首先安裝homebrew,安裝方法請看:https://blog.csdn.net/sunxiaoju/article/details/85217293 2、然後在終端輸入如下命令安裝: brew install git 3、此時就會從網上自動下載安裝,如下圖所示: 4