1. 程式人生 > >Jenkins實踐基礎:Alpine版Jenkins(LTS版)

Jenkins實踐基礎:Alpine版Jenkins(LTS版)

在這裡插入圖片描述
在Easypack中的Alpine容器中,我們將會挑選一些非常流行的工具進行自定義設定以及進行最佳實踐的整理,基本思路都是在官方映象的最新版本之上進行強化。本次為持續整合利器Jenkins。

強化之處

  • 尺寸較小,base映象基於alpine
  • 基於官方LTS版本進行整合
  • 可以自由調整版本
  • 初期化時候需要互動處理去除,直接內嵌預設使用者,無須設定
  • 內嵌pipeline等常用plugin
  • 內嵌blueocean
  • 內嵌maven
  • 內嵌sonar-scanner
  • 內嵌robotframework
  • 內嵌kubectl客戶端
  • 內嵌docker客戶端
  • 內嵌jnlp-slave方式

環境變數設定

常用環境變數設定如下所示:

環境變數 說明
JENKINS_MODE JENKINS模式,可設定為master或者slave
JENKINS_ADMIN_ID 登陸使用者ID
JENKINS_ADMIN_PW 登陸使用者密碼
JENKINS_MASTER_URL slave方式啟動時jnlpurl設定
JENKINS_SLAVE_SECRET slave方式啟動時secret設定
JENKINS_SLAVE_WORKDIR slave方式啟動時工作目錄設定

另外,JENKINS_OPTS和JAVA_OPTS同樣可用

Autobuild

與dockerhub結合,自動構建,自由更新。

當前版本

項番 當前版本 jenkins官方LTS穩定最新版本
版本 2.150.1 2.150.1

docker pull

命令:docker pull liumiaocn/jenkins:2.150.1

docker-compose方式

[[email protected] master]# tree
.
├── data
└── docker-compose.yml

1 directory, 1 file
[[email protected] master]# cat docker-compose.yml 
version: '2'

services:
  # jenkins service based on Jenkins LTS version
  jenkins:
    image: liumiaocn/jenkins:2.150.1
    ports:
      - "32002:8080"
      - "50000:50000"
    environment:
      - JENKINS_ADMIN_ID=root
      - JENKINS_ADMIN_PW=liumiaocn
      - JENKINS_MODE=master
    volumes:
      - ./data/:/data/jenkins
    restart: "no"
[[email protected] master]#

啟動&確認

[[email protected] master]# docker-compose up -d
Creating network "master_default" with the default driver
Creating master_jenkins_1 ... 
Creating master_jenkins_1 ... done
[[email protected] master]# docker-compose ps
      Name                    Command               State                         Ports                       
-------------------------------------------------------------------------------------------------------------
master_jenkins_1   /bin/tini -- /usr/local/bi ...   Up      0.0.0.0:50000->50000/tcp, 0.0.0.0:32002->8080/tcp 
[[email protected] master]#

docker run

命令:docker run -p 32002:8080 -p 50000:50000 -e JENKINS_ADMIN_ID=root -e JENKINS_ADMIN_PW=liumiaocn -e JENKINS_MODE=master -v /tmp/data:/data/jenkins --name jenkins liumiaocn/jenkins:2.150.1

頁面確認

使用上述32002埠和root/liumiaocn的初始管理使用者進行登陸
在這裡插入圖片描述
因為plugin等已經在初始化時進行了安裝,此處直接點選X跳過即可
在這裡插入圖片描述
點選Start using jenkins即可開始使用了
在這裡插入圖片描述

相關元件確認

Maven

[[email protected] ~]# docker exec -it master_jenkins_1 sh
/ # /usr/local/share/maven/bin/mvn -v
Apache Maven 3.6.0 (97c98ec64a1fdfee7767ce5ffb20918da4f719f3; 2018-10-24T18:41:47Z)
Maven home: /usr/local/share/maven
Java version: 1.8.0_121, vendor: Oracle Corporation, runtime: /usr/lib/jvm/java-1.8-openjdk/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "3.10.0-693.el7.x86_64", arch: "amd64", family: "unix"
/ # 

docker客戶端

/ # docker -v
Docker version 18.09.0, build 4d60db4
/ # 

kubectl

/ # kubectl version
Client Version: version.Info{Major:"1", Minor:"10", GitVersion:"v1.10.12", GitCommit:"c757b93cf034d49af3a3b8ecee3b9639a7a11df7", GitTreeState:"clean", BuildDate:"2018-12-19T11:16:52Z", GoVersion:"go1.9.3", Compiler:"gc", Platform:"linux/amd64"}
...省略
/ # 

robot framework

/ # robot --version
Robot Framework 3.1.1 (Python 2.7.15 on linux2)
/ # 

github地址

專案 URL
Jenkins-Alpine容器 https://github.com/liumiaocn/easypack/tree/master/containers/alpine/jenkins
  • 更新相關元件
    使用上述設定,一般只需修改版本資訊即可,但是注意如果是jenkins需要實現確認sha的hash值。