1.基礎環境依賴支持------ linux服務器 安裝dockerlinux
下載容器 Jenkins 運行 搭建私倉 registrygit
項目 open_cloud 碼雲開源框架docker
項目裏面的私倉地址,須要進行修改,修改爲如今jenkins運行的這個服務器的私倉地址api
服務器安裝docker 參考以前文章安全
docker 安裝Jenkins 參考以前文章服務器
須要注意一下幾點:框架
1. Jenkins_home 作外部宿主機文件映射的時候,須要給外部的宿主機文件賦予權限,由於容器使用的是內部建立的Jenkins用戶,無權限,沒法讀寫 例子: -v /home/jenkins/home/:/var/jenkins_homemaven
2. 我在使用docker下載Jenkins的時候,Jenkins作初始化,下載插件一直失敗,後面仔細查找才發現,docker官方已經廢棄了Jenkins這個鏡像,如今最新使用的是jenkins/jenkins測試
3. 由於咱們使用的是docker鏡像Jenkins啓動的,全部,在設置器對應的jdk maven 的時候,都須要作命令映射,使容器能夠識別到外部宿主機的這些環境,我這邊把jdk,還有maven都安裝在opt目錄了,因此作了映射 -v /opt:/optspa
4.內部的Jenkins容器,操做mvn 打包docker鏡像的時候,須要配置,是docker外部的docker命令生效,因此得在啓動的時作
參數配置 示例:-v /var/run/docker.sock:/var/run/docker.sock -v $(which docker):/usr/bin/docker
參考示例:http://www.javashuo.com/article/p-xnyoreri-z.html
5.由於第四部這裏,作了docker的文件映射,是jenkins能夠操做docker,可是jenkins的鏡像使用的用戶組,是本身容器的jenkins用戶,不是宿主機的root,因此,在打包成功,寫入鏡像的時候,會沒法寫入,這裏,咱們須要對宿主機的docker.sock作配置權限,不然沒法寫入,構建報錯。
參考示例:https://www.jianshu.com/p/db58d1cfd01b
好了,到了這裏,jnekins算是啓動成功了。
啓動成功jenkins,須要輸入初始化密碼,由於我作了Jenkins_home的映射,因此在宿主機上,密碼路徑是這樣
宿主機路徑:/home/jenkins/home/secrets/initialAdminPassword
容器內部路徑:/var/jenkins_home//secrets/initialAdminPassword
由於,我上面的命令,作了特殊的映射,因此直接在宿主機查找便可,根據本身的實際狀況來
下載系統默認的插件,安裝好之後,設置默認密碼,用戶,進入
由於,我代碼是在碼雲託管,因此,進去插件管理,在可選插件,搜索gitee進行安裝,我這裏已經安裝
安裝成功,須要對gitee進行配置,以便連接碼雲,進行代碼的拉取
進入系統設置,設置碼雲相關
在這裏,添加碼雲的私鑰。私鑰配置地址,是在https://gitee.com/profile/personal_access_tokens 進行添加,安全設置---私有密鑰 。私鑰只是展現一次,記得進行記錄
而後繼續Jenkins
連接名 自定義 Gitee 域名 URL 這是固定給碼雲地址
證書令牌,這裏選擇Jenkins,進行添加
選擇正確的類型,giteeapi令牌 ,在apiv5這裏,把你碼雲的私有令牌填寫上。完成添加。而後點擊上圖的測試連接,進行測試。測試經過。
好了,順便記得添加jenkins的mavne,jdk,我以前作了opt的映射,因此,我這裏,直接寫的相應的地址
保存應用,出去建立任務把。這裏我建立的是maven項目
這裏,咱們使用剛纔建立的gitee的那個自定義連接
這裏咱們須要注意的是,源碼管理這塊,連接gitee之後,須要配置登錄的用戶名,以及密碼,這是配置好的
這裏,你須要選擇類型,是用戶以及密碼,看清楚,下面的id以及描述,是自定義的,剛纔是1,如今就是2.不和以前的重複便可
建立成功之後,選擇上圖的你配置的gitee的用戶以及密碼
這裏須要注意的是,我們以前不是到了映射,Jenkins_home映射到了home/jenkins/home了嗎?可是聰明的你,應該明白我爲啥這樣些了,應爲,jenkin容器找的話,仍是找的他的本身目錄,只不過,本身的目錄,這層,被docker的 -v 參數,和外部宿主機粘合在一塊兒了,可是容器,須要正確指定。讓他找到pom。你若是不是Jenkins容器,固然沒必要這麼作。
這裏mvn 構建成功。而後執行當前的腳本,進行dockerfile的編譯
這是sh的腳本。這裏,你須要注意的是,我爲何把腳本放在opt了,還有就是爲何cd 進入的是
cd /var/jenkins_home/workspace/wlpt/wlpt-datainterface/platform/open-cloud-api-zuul-server
而不是
cd /home/jenkins/home/workspace/wlpt/wlpt-datainterface/platform/open-cloud-api-zuul-server/
這是由於我們以前作了 docker run jenkins 的時候,作的-v參數的映射啊。好了,總體設置成功之後,在點擊構建,好了,是原諒的綠色了。ok,大功告成