Docker安裝部署Jenkins和問題總結(最好不要用Docker安裝,坑多)


 

安裝jenkins轉載於 https://www.cnblogs.com/jack-jin/articles/12291190.html

1.本篇解釋:Jenkins插件安裝失敗處理方法

不論是剛啟動成功后進行的推薦插件安裝,還是后期使用Jenkins過程中進行插件的安裝。出現插件安裝失敗的問題,可以通過本篇解決!

【注意,插件下載安裝失敗,其失敗的原因是多種多樣的。這里僅說明了這些失敗出現的情況是在啟動安裝時還是在后期使用中。】

【在下面的解決方法模塊,會根據具體失敗的問題進行處理】

 

=====================================安裝失敗出現的環境================================================

如下:

 

初始啟動安裝推薦插件失敗的情況

 

 

使用Jenkins過程中,插件安裝失敗:

 

 

 

=====================================================針對不同安裝失敗的原因,具體對應的解決方法===========================================================================

 

針對不同的插件下載失敗問題,按照對應的解決方法進行解決:

1.網絡或牆的問題導致插件下載安裝失敗

 

 這種錯誤提示很明顯,就是無法連接到插件下載地址,導致插件下載失敗。

 

解決方法:

為Jenkins更換源

 

點擊Jenkins主頁面左側列表中【系統管理】

 

 

 下拉找到【管理插件】

 

 選擇【高級】選項卡

替換最下方【升級站點】中的URL

http://updates.jenkins-ci.org/update-center.json

替換為

http://mirror.esuni.jp/jenkins/updates/update-center.json

如下圖:【詳細的Jenkins的鏡像地址查詢:http://mirrors.jenkins-ci.org/status.html

 

 

保存后,即可返回到【可選插件】選項卡下,進行搜索重新安裝。

 

 

2.因為Jenkins版本太低導致插件不支持

 

 可以在線升級Jenkins的版本,即下載war包進行升級。【本人使用的Jenkins的docker鏡像啟動使用的,因此本方法不適合我】

 

 

 

解決方法:

  1.上面所說,因為Jenkins本身版本過低的問題,導致插件安裝不成功。可以自行升級Jenkins版本,來解決這個問題。

  2.但是像這種使用docker鏡像啟動的,升級Jenkins的版本是沒多大戲了,除非你把這個容器和對應鏡像干掉。下載更新的鏡像來啟動Jenkins容器。

    所以可以通過下載插件歷史版本,然后在Jenkins進行上傳插件的方式來解決這個問題。也就是所謂的手動下載上傳插件安裝

 

 

自行升級Jenkins版本:

  1.一定要在Jenkins官網查找最新版本,官網地址:https://jenkins.io/download/

  2.選擇對應操作方式的最新版本,例如:docker安裝包   或者  windows安裝包 或者 其他

  3.docker安裝步驟,參考:https://www.cnblogs.com/sxdcgaq8080/p/10489369.html

 

 

手動下載上傳插件安裝:

  這里就以安裝Docker Pipline插件為例,演示手動下載上傳插件安裝:

  1》首先咱們可以在啟動的Jenkins上的 系統管理進入

  2》可以看到錯誤日志中 Docker Pipline V1.17版本 所依賴的Pipline GroovyV2.57.2的版本 需要Jenkins版本在2.62以上才可以使用

 

 

  3》同樣在Jenkins的系統管理下的 插件管理下 可以看到

  4》進入Jenkins的插件下載網站

下載Jenkins的插件的地址:https://plugins.jenkins.io/

 

搜索本插件

 

點擊進入后,可以獲取歷史插件版本

 

 

 

 

 

 

  5》進入Jenkins,進入系統管理,進入管理插件,進入高級,上傳插件文件,開始上傳

 

 

 

 

2.即可安裝完成並且成功。需要注意的是,如果本插件有其他依賴插件的話,需要先安裝依賴插件,再進行本插件的安裝,否則還會失敗!!!!!

根據容器名稱查詢容器ID並刪除
# 第一種寫法
docker stop `docker ps -a| grep test-project | awk '{print $1}' `
docker rm `docker ps -a| grep test-project | awk '{print $1}' `

# 第二種寫法
docker stop `docker ps -aq --filter name=test-project`
docker rm `docker ps -aq --filter name=test-project`

根據鏡像名稱查詢容器ID並刪除
# 第一種寫法
docker stop `docker ps -a| grep ygsama/test-project:1.0.2 | awk '{print $1}' `
docker rm `docker ps -a| grep ygsama/test-project:1.0.2 | awk '{print $1}' `

# 第二種寫法
docker stop `docker ps -aq --filter ancestor=ygsama/test-project:1.0.2`
docker rm `docker ps -aq --filter ancestor=ygsama/test-project:1.0.2`


根據鏡像名稱查詢鏡像ID並刪除

docker images -q --filter reference=ygsama/test-project*:*
docker image rm `docker images -q --filter reference=10.2.21.95:10001/treasury-brain*:*`

還可以根據端口號、狀態等字段篩選容器,詳細可以參考官方文檔

3.

1.在使用docker容器時,有時候里邊沒有安裝vim,敲vim命令時提示說:vim: command not found,這個時候就需要安裝vim,可是當你敲apt-get install vim命令時,提示:

        Reading package lists... Done
        Building dependency tree       
        Reading state information... Done
        E: Unable to locate package vim

        這時候需要敲:apt-get update,這個命令的作用是:同步 /etc/apt/sources.list 和 /etc/apt/sources.list.d 中列出的源的索引,這樣才能獲取到最新的軟件包。

        等更新完畢以后再敲命令:apt-get install vim命令即可。

 

今天在docker容器內部執行apt-get install vim 命令一直沒有權限,在啟動docker容器的時候 加上--privileged就行 docker run -d -u root --privileged

4.因為我是用docker安裝部署的jenkins中間踩了許多坑,還是推薦大家用jenkins.jar安裝

jenkins配置的git,maven,和jdk都是在docker容器內部

docker run -d -u root --privileged --name jenkins -p 8088:8080 -v /opt/docker_jenkens:/var/jenkins_home -v /opt/apache-maven-3.5.4:/usr/local/maven -v /opt/jdk:/usr/local/jdk  -v /home/admin:/home/admin  jenkins/jenkins:lts;

5.

1、從容器里面拷文件到宿主機?

     答:在宿主機里面執行以下命令

             docker cp 容器名:要拷貝的文件在容器里面的路徑       要拷貝到宿主機的相應路徑 

     示例: 假設容器名為testtomcat,要從容器里面拷貝的文件路為:/usr/local/tomcat/webapps/test/js/test.js,  現在要將test.js從容器里面拷到宿主機的/opt路徑下面,那么命令應該怎么寫呢?

     答案:在宿主機上面執行命令

docker cp testtomcat:/usr/local/tomcat/webapps/test/js/test.js /opt

2、從宿主機拷文件到容器里面

      答:在宿主機里面執行如下命令

              docker cp 要拷貝的文件路徑 容器名:要拷貝到容器里面對應的路徑

       示例:假設容器名為testtomcat,現在要將宿主機/opt/test.js文件拷貝到容器里面的/usr/local/tomcat/webapps/test/js路徑下面,那么命令該怎么寫呢?

       答案:在宿主機上面執行如下命令     

docker cp /opt/test.js testtomcat:/usr/local/tomcat/webapps/test/js

3、在這里在記錄一個問題,怎么看容器名稱?

      執行命令:docker ps,出現如圖所示,其中NAMES就是容器名了。

 4.需要注意的是,不管容器有沒有啟動,拷貝命令都會生效。

原文鏈接:https://blog.csdn.net/zimou5581/java/article/details/94012682

6.jenkins時間問題

jenkins系統時間不正確解決方案

meiria 2019-06-03 17:30:59 3980 收藏 3
分類專欄: jenkins
版權
問題:安裝完jenkins后發現時區不對

解決:打開jenkins的【系統管理】---> 【腳本命令行】,在命令框中輸入一下命令【時間時區設為 亞洲上海】:

System.setProperty('org.apache.commons.jelly.tags.fmt.timeZone', 'Asia/Shanghai')
點擊【運行】,可以看到時間已正常,如圖。

 

 

 

后續:有時候打開又發現時間變了,又是相隔8個小時的utc,每次都要在命令行輸入也是很麻煩了,打算這次一次性解決。

由於我這邊jenkins跑的是docker,起容器時命令是把/etc/localtime映射進去的,因此容器時間和主機時間是一致的,但是jenkins的時間還是utc,這就說明 jenkins時間用的不是/etc/localtime。

用命令查看docker的時區,cat /etc/timezone

# 查看系統的時區
[root@note-53 ~]# cat /etc/timezone
Asia/Shanghai

# 進入容器
[root@note-53 ~]# docker exec -it -u root jenkins bash

# 查看容器時區
root@note-53:/# cat /etc/timezone
Etc/UTC

#修改容器時區
root@note-53:/# echo 'Asia/Shanghai' > /etc/timezone
root@note-53:/# exit

# 重啟容器
[root@note-53 ~]# docker restart jenkins

重新打開jenkins頁面,發現時間已經正常。

還是建議起容器的時候,把本機的/etc/timezone映射進去。【或者采用 -e JAVA_OPTS=-Duser.timezone=Asia/Shanghai】

docker run --name jenkins --restart=always --network=host -e JAVA_OPTS=-Duser.timezone=Asia/Shanghai  -v /var/jenkins_home:/var/jenkins_home  -v /data/jdk:/data/jdk -v /etc/localtime:/etc/localtime -d jenkins
或者jenkins直接修改用戶時區
原文鏈接:https://blog.csdn.net/qq_40168110/java/article/details/90755684



安裝jenkins踩過的坑 轉載於 https://www.cnblogs.com/sxdcgaq8080/p/10489326.html


免責聲明!

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



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