基於CentOS、docker搭建jenkins內網前端可持續集成環境

測試環境:centos 7(64位)、docker-ce、jenkins 2.93html

docker-ce安裝文檔jenkins官方react和node集成文檔node

docker離線安裝

在centos上安裝docker,除了docker的rpm外還須要有如下的依賴包:react

安裝依賴:linux

sudo yum install libtool-ltdl-2.4.2-22.el73.x8664.rpm
複製代碼
sudo yum install container-selinux-2.33-1.git86f33cd.el7.noarch.rpm
複製代碼
sudo yum install docker-ce.rpm
複製代碼

若是以前安裝過docker而遇到問題,請參考docker-ce安裝文檔git

開啓docker服務

sudo systemctl start docker
複製代碼

下載jenkins鏡像並導出

我這裏選擇的是這個jenkins鏡像,以前在win10 pro上有用過jenkinsci/blueocean:latest,在執行node命令是會出現找不到node命令,即便我已經設置了PATHdocker

docker pull jenkins/jenkins
複製代碼

輸入 docker images查看當前的鏡像列表shell

輸入sudo docker save -o myjenkins.tar jenkins/jenkins:latest 以.tar的格式導出jenkins/jenkins:latest鏡像到當前文件夾,並將它拷貝到離線環境npm

在離線環境下導入

離線環境下,輸入sudo docker load --input myjenkins.tar導入鏡像。centos

這時輸入docker images查看鏡像,便可看見導入的鏡像瀏覽器

運行導出的jenkins鏡像

docker run 
  
  // 當此容器stop時,刪除此容器
  --rm 
  
  // 設置調用docker中命令終端時,使用的角色
  -u root 
  
  // 映射主機的物理端口8080到docker的8080虛擬端口
  -p 8080:8080 
  
  //若是jenkins-data(文件夾名字,能夠取其餘的)在/var/lib/docker/volumes下不存在,docker會建立此文件夾,並將此文件夾下的_data文件夾映射到docker中的/var/jenkins_home,此文件夾下存儲的是jenkins的數據(包含插件、用戶信息、構建記錄等)
  -v jenkins-data:/var/jenkins_home
  
  // docker的守護進程(沒深刻研究過)
  -v /var/run/docker.sock:/var/run/docker.sock 
  
  // 映射主機的/home/hanqing/source到docker容器中的/home
  -v /home/hanqing/source:/home
  
  // 要運行的鏡像
  myjenkins
複製代碼

打命令的時候是一行寫完的,不換行

執行後下圖的紅框中的字符串要拷貝下來,以後jenkins激活須要用到

配置jenkins

打開瀏覽器訪問localhost:8080,看到jenkins服務已經開啓了

administrator的password就是以前紅框中的那一串

由於是離線(能夠先跳過這個步驟,等配置完jenkins的時候再添加),我知道的插件安裝方式有兩種

  • 插件能夠經過jenkins-plugins下載後,從系統設置->管理插件->高級->上傳插件
  • 從已經下載好插件的jenkins插件目錄下拷貝出來,複製到離線jenkins的插件目錄(此例子的插件目錄是/var/lib/docker/volumes/jenkins-data/_data/plugins)

設置用戶(電子郵件一欄必定要有@)

開始使用jenkins

點擊主頁左側的新建Item選項,輸入任務名,選擇構建一個自由風格的軟件項目,點擊肯定

在頁面中源碼管理section中選擇版本管理器,我用的是git,因此就用git做例子,這裏的Repository URL能夠是一個本地地址,也能夠是一個網址,必須指向一個帶.git文件的文件夾或者一個git倉庫,若是要使用ssh的話,須要在Credentials中設置ssh私鑰

在構建section選擇execute shell,而後就能夠在command輸入框中輸入命令了(這些命令是在docker的容器中執行的,因此執行環境也是容器的)

給構建環境增長node

默認狀況下,此docker容器的執行環境中沒有node,就跑不了npm script,若是是聯網的話,能夠經過NodeJS Plugin插件來解決,但離線的話就須要在command裏面須要將node的可執行文件添加進PATH中

個人解決方案是將node的linux二進制文件壓縮包解壓到/home/hanqing/source目錄下,爲了方便將解壓後的文件夾命名爲node,也就是把這些文件映射到了容器的/home目錄下,這時將bin文件夾下的二進制文件添加到PATH中就可使用node命令了,在command輸入框中輸入:PATH=$PATH:/home/node/bin

相關文章
相關標籤/搜索