Jenkins實踐基礎:Alpine版Jenkins(LTS版)
阿新 • • 發佈:2019-01-12
在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值。