centos7一步一步搭建docker jenkins 及自定義訪問路徑重點講解


  系統環境:centos7.7 (VMware中)

  鏡像image 版本:jenkins/jenkins (截止2020.01.10最新版)

  參考文章:https://www.jianshu.com/p/12c9a9654f83

  1、一定要 docker pull jenkins/jenkins ,不要docker pull jenkins ,jenkins版本太舊已不維護了。(感謝文章:https://www.jianshu.com/p/9a3814c88bf2

  

  2、查看拉取的鏡像 docker images 。

   

  3、/www下創建一個my_jenkins 文件夾,用於存放Jenkins掛載文件。

  

  4、為my_jenkins 文件夾賦予權限。

  

  默認創建的文件夾為當前登錄者的權限,我這里是root創建的,所以權限也為root,但jenkins容器需要的權限是jenkins,所以此處需要給my_jenkins 賦予jenkins權限。(關於權限的添加,我們要感謝下這篇文章:https://blog.csdn.net/fenglailea/article/details/82698596

  

    5、啟動一個jenkins容器,命名為my_jenkins_2020,並將上面創建的文件夾掛載到容器。啟動成功后docker ps 可以查看到已經成功啟動的jenkins 容器。並且默認會映射到50000端口。 

docker run -d --name my_jenkins_2020 -p 8080:8080 --restart=always -e TZ="Asia/Shanghai" -e JENKINS_OPTS="--prefix=/my_jenkins" -e JENKINS_ARGS="--prefix=/my_jenkins" -v /etc/localtime:/etc/localtime:ro -v /www/my_jenkins:/var/jenkins_home jenkins/jenkins
參數解析:
-d 后台運行容器,並返回容器ID;
--name 為容器起一個容易區分且容易書寫的名字
-p 映射宿主機端口到容器端口,宿主機端口:容器端口
--restart=always 機器重啟時自動啟動容器
-e       設定一些必須的環境變量。
          -e TZ="Asia/Shanghai" 設定時區為上海,強烈建議國內設定,否則容器內打印的所有日志時間都會差8小時。
          -e JENKINS_OPTS="--prefix=/my_jenkins" -e JENKINS_ARGS="--prefix=/my_jenkins" 重點!!!設定jenkins訪問的路徑,非必選,如果是直接根目錄或ip地址訪問,則不需要添加,如果是想nginx反向代理且不在根目錄下,則必須,否則只配置nginx會報靜態文件404錯誤,此處名字應與文件夾名稱一致。此處特別感謝兩篇文章:https://blog.csdn.net/whh18254122507/article/details/81783430https://www.jianshu.com/p/8315657465ac
-v       掛載宿主機文件到容器。本例兩個分別為:
          -v /etc/localtime:/etc/localtime:ro 掛載宿主機時間,保持容器時間正確。
          -v /www/my_jenkins:/var/jenkins_home 綁定掛載文件

   

  6、瀏覽器中訪問自己的centos宿主機ip:8080/my_jenkins 反向代理路徑,則進入jenkins配置頁面。

  

  上圖中提示要去/var/jenkins_home/secrets/initialAdminPassword 中查看初始密碼,但由於我們已經將對應文件夾掛載到宿主機了,所以可以直接在宿主機中查看 more /www/my_jenkins/secrets/initialAdminPassword ~~如下,則顯示初始密碼,每個人的都不同,請使用你自己的初始密碼,將該值復制到上面的管理員密碼中,點擊“繼續”。

  

  7、等待初始化完成,繼續選擇“安裝推薦的插件”,開始安裝默認插件,根據網速不同安裝速度可能會很慢,耐心等待完成。

    

  我這K級龜速,大約1小時20分鍾后。。。。

    

  創建賬號,既然是來學習這篇文章的,多數是第一次使用,可以創建一個通俗的賬號admin,密碼也可以簡單點,我這里也是admin,正式環境可不要這么隨便喲~,郵箱必填,點擊“保存並完成”,繼續,點擊“開始使用jenkins"進入。

    

  進入后我們選擇左側的”Manage Jenkins“,發現還是英文版的,需要重啟下容器:docker restart my_jenkins_2020,並重新刷新你的jenkins頁面,輸入創建的賬號密碼。

    

  

    

 

  8、安裝全局工具配置。本文不講解 git方式獲取代碼,所以刪除git配置。

    

  本文將以一個存儲在svn下的srping mvc項目介紹搭建一個maven構建項目,所以我們需要安裝jdk和maven全局工具。默認配置jdk已經安裝在/usr/local/openjdk-8,我們只需改成手動配置即可,maven默認沒有安裝,我們選擇自動安裝。然后點擊保存。

  

  

   9、插件管理。選擇系統管理中的“插件管理”——> “可選插件” ——> 輸入Maven Integration 過濾,選中多選框,點擊底部的直接安裝。耐心等待安裝完成~~

     

  (非必選)同樣的方式過濾安裝Deploy to container 插件。該插件用於將項目發布到tomcat下,如果不需要的可以不安裝。

   

   安裝完成后選中“安裝完成后重啟jenkins” 。

    

   10、重啟后我們創建第一個jenkins任務~~

      如果不進行上一步的maven插件安裝,則無法創建maven項目,現在則可以啦。

    

  上面說了,本次我們構建的是svn上的項目,輸入svn項目地址后需要綁定訪問svn的賬號。只需要輸入賬號密碼保存即可,然后下拉菜單中便可以選擇新添加的svn賬號。

    

  Build 中配置構建方式,輸入 clean install(也可以輸入其它mvn構建方式,不需要輸入mvn package)

  

 

  本篇我們的項目最終要放到tomcat里運行,上面我們已經安裝了Deploy to container 插件,便是為此做的准備。最底部選擇“添加構建后的操作步驟” ——> “Deploy war/ear to a container”。輸入對應內容,此處tomcat URL為tomcat服務的地址,對應的賬號為tomcat的訪問賬號,添加方式如上面的svn賬號,不再重復。以上填寫完畢后點擊保存。

    

  

  回到主頁后准備構建。任務后面的下拉菜單選擇立即構建,構建開始左側會有進度,點擊進度條查看構建詳情,

  

  正常應該就可以執行成功了,配置結束。

 

原文地址:https://www.cnblogs.com/jying/p/12173090.html
作者:一定會去旅行
歡迎任何形式的轉載,但請務必注明出處。
限於本人水平,如果文章和代碼有表述不當之處,還請不吝賜教。

  

  但由於我的項目用到了微軟的 sqlserver 數據庫(別問為什么,問就是必須,不得不,have to),而微軟的 com.microsoft.sqlserver:sqljdbc4:jar 默認是不能從maven倉庫找到的,所以構建中報錯,需要手動添加sqljdbc4.jar到jenkins環境。

   

  11、解決以上問題。需要手動添加sqljdbc.jar 對應版本到jenkins容器中,首先docker jenkins 中雖然已經安裝了maven,但是沒有放到系統環境變量里,需要設置maven的環境變量才能使用mvn。

    A、將對應版本的sqljdbc.jar 上傳到宿主機/www文件夾。(此處我已經上傳了sqljdbc42.jar到宿主機,本文不詳細講如何獲取並上傳該文件)然后復制到docker jenkins容器。

    

    B、復制docker jenkins 的/etc/profile 文件到宿主機文件夾/www/my_jenkins。(為什么要復制到宿主機?因為docker jenkins 容器中默認不能使用vim,不想復制到本地也可以在docker jenkins容器中安裝vim直接編輯,可以參考 https://www.cnblogs.com/jying/p/12082929.html 中的jenkins部分。)

    

    C、編輯復制來的profile文件,vi profile,在最后添加maven環境變量。(不會編輯的自己先學習下~~)因為我們用的是jenkins自動安裝的maven,所以安裝路徑在/var/jenkins_home/tools/hudson.tasks.Maven_MavenInstallation/maven3.6.3,版本改成自己上面安裝maven插件時對應的版本。

    

    D、編輯完成后退出並保存,然后再復制回docker jenkins容器。((強烈建議且必須)同樣的方式需要復制docker jenkins容器中的/var/jenkins_home/tools/hudson.tasks.Maven_MavenInstallation/maven3.6.3/conf/setting.xml 文件到宿主機,並修改其鏡像為國內阿里鏡像,再復制回jenkins容器。但由於我們已經將/var/jenkins_home掛載到宿主機/www/my_jenkins,所以可以直接修改宿主機的/www/my_jenkins/tools/hudson.tasks.Maven_MavenInstallation/maven3.6.3/conf/setting.xml。) 

       

   <!-- 阿里雲中央倉庫 ,將此段代碼放在setting.xml的mirrors內-->
    <mirror>
        <id>nexus-aliyun</id>
        <name>Nexus aliyun</name>
        <mirrorOf>central</mirrorOf>
        <url>http://maven.aliyun.com/nexus/content/groups/public</url>
    </mirror>

       最后以root用戶權限登錄進jenkins容器,此處注意登錄角色,否則可能會提示沒有權限。 

    

    E、使設置生效需要執行下:source profile,然后再查看mvn -v,已經有信息了。

    

    F、將sqljdbc.jar加入docker jenkins容器maven倉庫。    

mvn install:install-file -Dfile=sqljdbc42.jar -Dpackaging=jar -DgroupId=com.microsoft.sqlserver -DartifactId=sqljdbc4 -Dversion=4.0

這里記得改成自己的版本  -Dfile="jar包的絕對路徑+完整文件名稱版本"
此處假設你已經將sqljdbc.jar復制進docker jenkins容器文件夾/var/jenkins_home下。

   

   G、退出docker jenkins容器,再次回到頁面重新構建maven項目。

   

 正常情況下應該可以了~~ 

原文地址:https://www.cnblogs.com/jying/p/12173090.html
作者:一定會去旅行
歡迎任何形式的轉載,但請務必注明出處。
限於本人水平,如果文章和代碼有表述不當之處,還請不吝賜教。 

  but,我的因為是自己搭建的vmware 虛擬機中centos7.7 ,結果又構建失敗:Caused by: java.net.NoRouteToHostException: No route to host (Host unreachable) 

  

   網上查找原因,是防火牆問題,但是按照某些說法直接關掉防火牆后無法連接內網的svn了,,,那些失敗的方法我就不貼出來誤導大家了,,最后自己在虛擬機上手動添加了8080和8081端口到防火牆,再次構建,終於成功!!!

  

   

  配置完成!!!

  

  

 ~~~~~~~~~~~~~~ 補充 ~~~~~~~~~~~~~~~~~~~~~~~~~~

 jenkins忘記登錄密碼時重置密碼為123456方式:https://www.jianshu.com/p/68fcfff47358 

修改 JENKINS_HOME/users/usernamedir 目錄下的config.xml  文件

注:usernamedir 就是你忘記密碼對應的用戶文件夾
如果是java -jar方式啟動的,HOME目錄位於/root/.jenkins

修改config.xml,找到 passwordHash部分,替換原有的hash值
  #jbcrypt:$2a$10$DdaWzN64JgUtLdvxWIflcuQu2fgrrMSAMabF5TSrGK5nXitqK9ZMS
修改為  #jbcrypt:$2a$10$4NW.9hNVyltZlHzrNOOjlOgfGrGUkZEpBfhkaUrb7ODQKBVmKRcmK

后者是123456的hash值

重啟Jenkins

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM