最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

docker搭建jenkins+maven代碼構建部署平臺

 更新時間:2021年06月21日 11:01:11   作者:JeangLee  
本文主要介紹了docker搭建jenkins+maven代碼構建部署平臺,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

由于項目開發(fā),經(jīng)常需要在本地搭一些環(huán)境進行開發(fā)或測試,大家知道搭環(huán)境、裝軟件、裝中間件是件非常麻煩的事情,有些軟件的安裝可能需要依賴其它環(huán)境的安裝,如安裝rabbitmq首先需要Erlang語言環(huán)境,一整套安裝下來不僅浪費時間而且還各種問題出現(xiàn),嚴重影響開發(fā)進度。對于開發(fā)者來講,life is short, 盡一切可能提高開發(fā)效率。

Docker的出現(xiàn)對于技術界無疑是一件劃時代的事件,Docker由于具體豐富的應用鏡像倉庫、使用方便及可移植性而深受廣大IT從業(yè)人員喜愛。用Docker部署或安裝相應的應用不用花太多時間在安裝過程及細節(jié)、依賴上,真正做到開箱即用。本文以jenkins的搭建為例,說明Docker的基本操作過程:拉取鏡像、運行容器、文件掛載、跟蹤運行、關閉容器等,希望對剛入門Docker的技術愛好者能有所幫助。

Docker基本概念

Docker 是一個開源的應用容器引擎,讓開發(fā)者可以打包他們的應用以及依賴包到一個可移植的容器中,然后發(fā)布到任何流行的 Linux 機器上。其實Docker最經(jīng)典的是那張“背有集裝箱的海豚”圖,這張圖充分說明了docker引擎與容器之間的關系。
掌握鏡像、容器、倉庫基本就對Docker了解得差不多了,就能正確的使用Docker.

  • 鏡像:可以理解為應用的“源碼”或.exe安裝文件;
  • 容器:就是鏡像運行后的實例,與鏡像的關系其實就如“對象”與“類”的關系;
  • 倉庫:發(fā)布鏡像的倉庫,在倉庫中可以下載或拉取各種鏡像(應用)而Docker則是一個容器運行所需要的引擎,所有的容器均運行在引擎之中。

 Docker安裝過程(Centos6.9)

升級內核

Centos6.9需要升級內核版本才可以安裝Docker,升級過程如下
1.引入key

rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org 
rpm -Uvh http://www.elrepo.org/elrepo-release-6-8.el6.elrepo.noarch.rpm 

2.yum安裝

yum --enablerepo=elrepo-kernel -y install kernel-lt 

3.引導文件修改(grub.conf

vim /etc/grub.conf 

將 default 設置為 0 ,default=0

4.重啟

安裝docker-io

1.安裝EPEL源

yum install http://mirrors.yun-idc.com/epel/6/x86_64/epel-release-6-8.noarch.rpm 

2.安裝docker-io

yum -y install docker-io 

3.啟動docker服務

service docker start

基于Docker的jenkins安裝

拉取應用

運行容器/實例之前,需要從docker hub倉庫中拉取相應的鏡像,可查看官網(wǎng)關于jenkins鏡像上的一些介紹,其中對于安裝命令、配置信息及文件目錄都有于詳細的說明。
從倉庫中拉取最新的jenkins,docker pull jenkins,拉取其它版本的可通過命令docker pull jenkins:<version>

運行容器

運行容器/實例,需要考慮到本地端口與docker容器的映射,以便通過本地主機可以訪問。由于容器本身并不會持久化文件,其實docker不建議在容器中進行任何文件有關的寫入操作,僅僅當作一個“容器”使用。如果容器應用運行過程中會產(chǎn)生許多重要的數(shù)據(jù)需要保存或配置,如mysql的db文件,jenkins的插件、配置文件等,則建議將容器的文件掛載到本地,也即volume映射。 

docker run -p 8080:8080 -p 50000:50000 -v /usr/local/docker_volume/jenkins:/var/jenkins_home -v /usr/local/apps/maven-3.3.9:/var/maven_home -v /usr/local/apps/maven-3.3.9/repo:/usr/local/apps/maven-3.3.9/repo --name my_jenkins -d jenkins

 其中-p表示端口映射,即將本機上的端口映射到容器上的端口;
-v表示文件映射,即本機與容器共享映射,掛載文件
注意:由于jenkins構建maven項目需要依賴maven項目,因此在運行容器的時候將本機的maven_home共享給容器。由于容器運行時需要在本機共享文件中寫入,需要寫權限,sudo chown -R 1000:1000 /usr/local/docker_volume/jenkins sudo chown -R 1000:1000 sudo chown -R 1000:1000

運行以上命令,窗口會打印容器id,通過docker ps可查看運行的容器狀態(tài)及相關信息。

跟蹤應用log

輸入docker logs <CONTAINER ID>即可跟蹤容器打印日志,初次啟動jenkins會在日志中打印密碼,復制后用于登陸jenkins.

關閉打開容器

關閉:docker stop <CONTAINER ID>
打開:docker start <CONTAINER ID>

tomcat賬戶配置

本例將maven編譯后的war部署到遠程tomcat,因此需要在tomcat中設置部署權限,編輯/con/tomcat-users.xml配置文件,加入賬戶

<role rolename="tomcat"/>
<role rolename="admin"/>
<role rolename="admin-gui"/>
<role rolename="manager"/>
<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<role rolename="manager-jmx"/>
<role rolename="manager-status"/>
<user username="admin" password="admin" roles="admin,manager,tomcat,manager-gui,manager-script,manager-jmx,manager-status"/>
<user username="root" password="admin" roles="admin,manager,tomcat,manager-gui,manager-script,manager-jmx,manager-status,admin-gui"/>

配置jenkins,構建部署war應用

至此,通過訪問http://本機ip:8080即可訪問到jenkins平臺,選擇默認安裝插件,安裝成功后選擇設置賬號等.

配置JDK、Maven等參數(shù)

在 “系統(tǒng)設置—> Global Tool Configuration”中添加JDK安裝如下圖所示

set01

set_02

set_03

安裝“Deploy to container Plugin”插件用于部署war程序
在”系統(tǒng)設置—> 管理插件—>可選插件”中安裝

新建任務構建部署

添加svn源碼地址、tomcat部署地址

set_04

set_07

tomcat 部署配置,配置登錄tomcat的賬號

set_06

set_08

通過ssh腳本部署maven項目到指定Tomcat中

用以上方法在tomcat自帶的deployment實現(xiàn)部署對于服務器性能消耗較大,經(jīng)常會出現(xiàn)如內存溢出等問題,導致部署失敗。采用ssh腳本部署的方式則方便快捷很多,對于內存消耗也沒有那么多。

配置Publish Over SSH插件

在”系統(tǒng)設置—> 管理插件—>可選插件”中安裝(Publish Over SSH)插件,然后在“系統(tǒng)管理—>系統(tǒng)設置—>Publish over SSH”設置要發(fā)布的linux服務器的登錄信息,各項配置與具體含義如下圖所示。配置完成后,點擊【Test Configuration】按鈕可測試是否連接上,如顯示“Success”則表示配置成功。

ssh登錄

編寫部署ssh腳本

將以下shell腳本deploy.sh存放在服務器的/home/admin/data目錄下并給予執(zhí)行權限chomd +x deploy.sh,即上圖ssh登錄配置圖中的Remote Directory目錄下。這樣配置表示jenkins登錄到tomcat所在的linux服務器后可用./deploy.sh執(zhí)行部署操作。如果demploy.sh放在其它目錄,則用絕對路徑/..dir../..dir../deploy.sh來執(zhí)行即可。

#!/bin/bash
# 文件:set ff=unix
#defined 
export JAVA_HOME=/usr/local/java
# tomcat部署位置
TOMCAT_HOME="/home/admin/data/tomcat-jenkins"
# 登錄后的服務器用戶目錄,與上圖配置的Remote Directory設置相同
LOGIN_HOME="/home/admin/data"
TOMCAT_PORT=10092
PROJECT="$1"
#param validate
if [ $# -lt 1 ]; then
  echo "you must use like this : ./deploy.sh <projectname> [tomcat port] [tomcat home dir]"  
  exit
fi
if [ "$2" != "" ]; then
   TOMCAT_PORT=$2
fi
if [ "$3" != "" ]; then
   TOMCAT_HOME="$3"
fi
#shutdown tomcat
#"$TOMCAT_HOME"/bin/shutdown.sh
#echo "tomcat shutdown"
#check tomcat process

#tomcat_pid=`/usr/sbin/lsof -n -P -t -i :$TOMCAT_PORT`
tomcat_pid=`ps -ef | grep $TOMCAT_HOME | grep -v 'grep\|tail\|more\|bash\|less'| awk '{print $2}'`
echo "current :" $tomcat_pid
while [ -n "$tomcat_pid" ]
do
 sleep 5
 tomcat_pid=`ps -ef | grep $TOMCAT_HOME | grep -v 'grep\|tail\|more\|bash\|less'| awk '{print $2}'`
 echo "scan tomcat pid :" $tomcat_pid
 if [ -n "$tomcat_pid" ]; then
   echo "kill tomcat :" $tomcat_pid
   kill -9 $tomcat_pid
 fi
done
#publish project
echo "scan no tomcat pid,$PROJECT publishing"
rm -rf "$TOMCAT_HOME"/webapps/$PROJECT
cp "$LOGIN_HOME"/war/$PROJECT.war "$TOMCAT_HOME"/webapps/$PROJECT.war
#bak project
#BAK_DIR=/home/web_as/war/bak/$PROJECT/`date +%Y%m%d`
#mkdir -p "$BAK_DIR"
#cp "$TOMCAT_HOME"/webapps/$PROJECT.war "$BAK_DIR"/"$PROJECT"_`date +%H%M%S`.war
#remove tmp
rm -rf "$LOGIN_HOME"/war/$PROJECT.war
#start tomcat
"$TOMCAT_HOME"/bin/startup.sh
echo "tomcat is starting,please try to access $PROJECT conslone url"

項目構建配置

參照下圖保存配置后,即可構建maven項目,jenkins會復制編譯后的war項目到192.168.1.12服務器對應的tomcat路徑下,然后啟動Tomcat部署項目。

項目構建配置

到此這篇關于docker搭建jenkins+maven代碼構建部署平臺的文章就介紹到這了,更多相關docker搭建jenkins+maven內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 基于Docker搭建Redis一主兩從三哨兵的實現(xiàn)

    基于Docker搭建Redis一主兩從三哨兵的實現(xiàn)

    這篇文章主要介紹了基于Docker搭建Redis一主兩從三哨兵的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-09-09
  • 解決docker與vmware的沖突問題

    解決docker與vmware的沖突問題

    這篇文章主要介紹了解決docker與vmware的沖突問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03
  • docker容器從入門到癡迷(推薦)

    docker容器從入門到癡迷(推薦)

    這篇文章主要介紹了docker容器從入門到癡迷,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-07-07
  • docker部署tig監(jiān)控服務教程

    docker部署tig監(jiān)控服務教程

    本文介紹了使用TIG(Telegraf-InfluxDB-Grafana)架構進行服務監(jiān)控的方法,通過Docker Compose快速搭建該監(jiān)控體系,包括Telegraf、InfluxDB和Grafana的安裝和配置,Telegraf用于數(shù)據(jù)采集,InfluxDB用于存儲數(shù)據(jù),Grafana用于數(shù)據(jù)可視化,通過配置文件和官方文檔
    2024-12-12
  • Docker下安裝部署Clickhouse及其遠程訪問方式

    Docker下安裝部署Clickhouse及其遠程訪問方式

    文章介紹了如何遠程拉取和安裝ClickHouse Docker鏡像,配置和部署ClickHouse容器,并通過DataGrip遠程訪問ClickHouse
    2024-11-11
  • 詳解Docker之Compose服務編排

    詳解Docker之Compose服務編排

    Compose是Docker的服務編排工具,主要用來構建基于Docker的復雜應用,Compose 通過一個配置文件來管理多個Docker容器,非常適合組合使用多個容器進行開發(fā)的場景。興趣的小伙伴們可以參考一下
    2018-07-07
  • Docker之限制容器的資源使用過程

    Docker之限制容器的資源使用過程

    這篇文章主要介紹了Docker之限制容器的資源使用過程,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-07-07
  • docker啟動Java程序的方法步驟

    docker啟動Java程序的方法步驟

    這篇文章主要介紹了docker啟動Java程序的方法步驟,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-06-06
  • docker利用selenium+testng實現(xiàn)web自動化的方法

    docker利用selenium+testng實現(xiàn)web自動化的方法

    這篇文章主要給大家介紹了關于docker利用selenium+testng實現(xiàn)web自動化的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習吧
    2018-10-10
  • 利用Docker搭建Laravel開發(fā)環(huán)境的完整步驟

    利用Docker搭建Laravel開發(fā)環(huán)境的完整步驟

    這篇文章主要給大家介紹了關于如何利用Docker搭建Laravel開發(fā)環(huán)境的完整步驟,文中通過示例代碼介紹的非常詳細,對大家學習或者使用Laravel具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-09-09

最新評論

肥乡县| 北安市| 琼结县| 吉木萨尔县| 靖边县| 泽普县| 武山县| 宜昌市| 丰顺县| 鄂托克旗| 葵青区| 南江县| 井研县| 遵义市| 应用必备| 德阳市| 德州市| 保德县| 山丹县| 新和县| 什邡市| 马山县| 高邑县| 庄河市| 托里县| 扶沟县| 昭觉县| 柳林县| 龙江县| 冀州市| 平陆县| 邵阳市| 安图县| 云霄县| 绩溪县| 巨鹿县| 南京市| 仁化县| 诸暨市| 榆中县| 福海县|