色综合图-色综合图片-色综合图片二区150p-色综合图区-玖玖国产精品视频-玖玖香蕉视频

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

docker搭建jenkins+maven代碼構(gòu)建部署平臺(tái)

瀏覽:130日期:2024-10-26 10:53:46
目錄Docker基本概念 Docker安裝過(guò)程(Centos6.9)升級(jí)內(nèi)核 安裝docker-io 基于Docker的jenkins安裝拉取應(yīng)用運(yùn)行容器跟蹤應(yīng)用log 關(guān)閉打開(kāi)容器 tomcat賬戶配置配置jenkins,構(gòu)建部署war應(yīng)用配置JDK、Maven等參數(shù) 新建任務(wù)構(gòu)建部署 通過(guò)ssh腳本部署maven項(xiàng)目到指定Tomcat中配置Publish Over SSH插件編寫(xiě)部署ssh腳本項(xiàng)目構(gòu)建配置

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

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

Docker基本概念

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

鏡像:可以理解為應(yīng)用的“源碼”或.exe安裝文件; 容器:就是鏡像運(yùn)行后的實(shí)例,與鏡像的關(guān)系其實(shí)就如“對(duì)象”與“類(lèi)”的關(guān)系; 倉(cāng)庫(kù):發(fā)布鏡像的倉(cāng)庫(kù),在倉(cāng)庫(kù)中可以下載或拉取各種鏡像(應(yīng)用)而Docker則是一個(gè)容器運(yùn)行所需要的引擎,所有的容器均運(yùn)行在引擎之中。 Docker安裝過(guò)程(Centos6.9)升級(jí)內(nèi)核

Centos6.9需要升級(jí)內(nèi)核版本才可以安裝Docker,升級(jí)過(guò)程如下 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.引導(dǎo)文件修改(grub.conf)

vim /etc/grub.conf

將 default 設(shè)置為 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.啟動(dòng)docker服務(wù)

service docker start基于Docker的jenkins安裝拉取應(yīng)用

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

運(yùn)行容器

運(yùn)行容器/實(shí)例,需要考慮到本地端口與docker容器的映射,以便通過(guò)本地主機(jī)可以訪問(wèn)。由于容器本身并不會(huì)持久化文件,其實(shí)docker不建議在容器中進(jìn)行任何文件有關(guān)的寫(xiě)入操作,僅僅當(dāng)作一個(gè)“容器”使用。如果容器應(yīng)用運(yùn)行過(guò)程中會(huì)產(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表示端口映射,即將本機(jī)上的端口映射到容器上的端口; -v表示文件映射,即本機(jī)與容器共享映射,掛載文件 注意:由于jenkins構(gòu)建maven項(xiàng)目需要依賴maven項(xiàng)目,因此在運(yùn)行容器的時(shí)候?qū)⒈緳C(jī)的maven_home共享給容器。由于容器運(yùn)行時(shí)需要在本機(jī)共享文件中寫(xiě)入,需要寫(xiě)權(quán)限,sudo chown -R 1000:1000 /usr/local/docker_volume/jenkins sudo chown -R 1000:1000 sudo chown -R 1000:1000

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

跟蹤應(yīng)用log

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

關(guān)閉打開(kāi)容器

關(guān)閉:docker stop <CONTAINER ID> 打開(kāi):docker start <CONTAINER ID>

tomcat賬戶配置

本例將maven編譯后的war部署到遠(yuǎn)程tomcat,因此需要在tomcat中設(shè)置部署權(quán)限,編輯/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,構(gòu)建部署war應(yīng)用

至此,通過(guò)訪問(wèn)http://本機(jī)ip:8080即可訪問(wèn)到j(luò)enkins平臺(tái),選擇默認(rèn)安裝插件,安裝成功后選擇設(shè)置賬號(hào)等.

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

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

docker搭建jenkins+maven代碼構(gòu)建部署平臺(tái)

docker搭建jenkins+maven代碼構(gòu)建部署平臺(tái)

docker搭建jenkins+maven代碼構(gòu)建部署平臺(tái)

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

新建任務(wù)構(gòu)建部署

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

docker搭建jenkins+maven代碼構(gòu)建部署平臺(tái)

docker搭建jenkins+maven代碼構(gòu)建部署平臺(tái)

tomcat 部署配置,配置登錄tomcat的賬號(hào)

docker搭建jenkins+maven代碼構(gòu)建部署平臺(tái)

docker搭建jenkins+maven代碼構(gòu)建部署平臺(tái)

通過(guò)ssh腳本部署maven項(xiàng)目到指定Tomcat中

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

配置Publish Over SSH插件

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

docker搭建jenkins+maven代碼構(gòu)建部署平臺(tái)

編寫(xiě)部署ssh腳本

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

#!/bin/bash# 文件:set ff=unix#defined export JAVA_HOME=/usr/local/java# tomcat部署位置TOMCAT_HOME='/home/admin/data/tomcat-jenkins'# 登錄后的服務(wù)器用戶目錄,與上圖配置的Remote Directory設(shè)置相同LOGIN_HOME='/home/admin/data'TOMCAT_PORT=10092PROJECT='$1'#param validateif [ $# -lt 1 ]; then echo 'you must use like this : ./deploy.sh <projectname> [tomcat port] [tomcat home dir]' exitfiif [ '$2' != '' ]; then TOMCAT_PORT=$2fiif [ '$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_pidwhile [ -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 fidone#publish projectecho 'scan no tomcat pid,$PROJECT publishing'rm -rf '$TOMCAT_HOME'/webapps/$PROJECTcp '$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 tmprm -rf '$LOGIN_HOME'/war/$PROJECT.war#start tomcat'$TOMCAT_HOME'/bin/startup.shecho 'tomcat is starting,please try to access $PROJECT conslone url'項(xiàng)目構(gòu)建配置

參照下圖保存配置后,即可構(gòu)建maven項(xiàng)目,jenkins會(huì)復(fù)制編譯后的war項(xiàng)目到192.168.1.12服務(wù)器對(duì)應(yīng)的tomcat路徑下,然后啟動(dòng)Tomcat部署項(xiàng)目。

docker搭建jenkins+maven代碼構(gòu)建部署平臺(tái)

到此這篇關(guān)于docker搭建jenkins+maven代碼構(gòu)建部署平臺(tái)的文章就介紹到這了,更多相關(guān)docker搭建jenkins+maven內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: Docker
相關(guān)文章:
主站蜘蛛池模板: 深夜福利亚洲 | 日本国产欧美 | 高清国产一级精品毛片基地 | 国产精品欧美一区二区三区 | 欧美另类69xxxxx 视频 | 国产99久久亚洲综合精品 | 国产亚洲精品久久综合影院 | 一区在线视频 | 88av在线视频 | 色内内免费视频播放 | 国产成人美女福利在线观看 | 亚洲天堂男人的天堂 | 欧美成年黄网站色高清视频 | 中文字幕久久久 | 男人天堂日韩 | 成人爱爱网站在线观看 | 武松金莲肉体交战在线观看 | 中文字幕第9页 | 欧美91精品久久久久网免费 | 国产小毛片| 亚洲视频在线观看网站 | 亚洲厕拍 | 久久亚洲国产最新网站 | 超薄肉色丝袜精品足j福利 超级乱淫视频aⅴ播放视频 | 99久久香蕉国产综合影院 | 国产精品秦先生手机在线 | 91专区在线| 久久午夜影视 | 俺来也欧美亚洲a∨在线 | 久免费视频 | 日韩一区二区三区在线视频 | 九九久久精品这里久久网 | 亚洲视频一区在线观看 | 国产三级日本三级美三级 | 日本成人免费在线观看 | 欧美视频一 | 国产初高中生粉嫩无套第一次 | 亚洲欧洲日韩综合色天使不卡 | 美女黄色免费在线观看 | 中文一区二区在线观看 | 亚洲第一页视频 |