国产成人精品18p,天天干成人网,无码专区狠狠躁天天躁,美女脱精光隐私扒开免费观看

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

發(fā)布時(shí)間:2021-08-15 18:37 來(lái)源: 閱讀:0 作者:JeangLee 欄目: 服務(wù)器 歡迎投稿:712375056

目錄

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

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

    Docker基本概念

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

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

     Docker安裝過(guò)程(Centos6.9)

    升級內核

    Centos6.9需要升級內核版本才可以安裝Docker,升級過(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.引導文件修改(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.啟動(dòng)docker服務(wù)

    service docker start
    

    基于Docker的jenkins安裝

    拉取應用

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

    運行容器

    運行容器/實(shí)例,需要考慮到本地端口與docker容器的映射,以便通過(guò)本地主機可以訪(fǎng)問(wèn)。由于容器本身并不會(huì )持久化文件,其實(shí)docker不建議在容器中進(jìn)行任何文件有關(guān)的寫(xiě)入操作,僅僅當作一個(gè)“容器”使用。如果容器應用運行過(guò)程中會(huì )產(chǎn)生許多重要的數據需要保存或配置,如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項目需要依賴(lài)maven項目,因此在運行容器的時(shí)候將本機的maven_home共享給容器。由于容器運行時(shí)需要在本機共享文件中寫(xiě)入,需要寫(xiě)權限,sudo chown -R 1000:1000 /usr/local/docker_volume/jenkins sudo chown -R 1000:1000 sudo chown -R 1000:1000

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

    跟蹤應用log

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

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

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

    tomcat賬戶(hù)配置

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

    <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應用

    至此,通過(guò)訪(fǎng)問(wèn)http://本機ip:8080即可訪(fǎng)問(wèn)到j(luò )enkins平臺,選擇默認安裝插件,安裝成功后選擇設置賬號等.

    配置JDK、Maven等參數

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

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

    新建任務(wù)構建部署

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

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

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

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

    配置Publish Over SSH插件

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

    編寫(xiě)部署ssh腳本

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

    #!/bin/bash
    # 文件:set ff=unix
    #defined 
    export JAVA_HOME=/usr/local/java
    # tomcat部署位置
    TOMCAT_HOME="/home/admin/data/tomcat-jenkins"
    # 登錄后的服務(wù)器用戶(hù)目錄,與上圖配置的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會(huì )復制編譯后的war項目到192.168.1.12服務(wù)器對應的tomcat路徑下,然后啟動(dòng)Tomcat部署項目。

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

    免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng )、來(lái)自本網(wǎng)站內容采集于網(wǎng)絡(luò )互聯(lián)網(wǎng)轉載等其它媒體和分享為主,內容觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如侵犯了原作者的版權,請告知一經(jīng)查實(shí),將立刻刪除涉嫌侵權內容,聯(lián)系我們QQ:712375056,同時(shí)歡迎投稿傳遞力量。

    国产啪亚洲国产精品无码| 久久精品麻豆日日躁夜夜躁| 国产在线永久视频| 人妻少妇看A偷人无码电影| 在线观看片A免费不卡观看| 内射老妇女BBWXOX|