一、概述
Jenkins 的前身是 Hudson 是一個可擴充的持續內建引擎。Jenkins 是一款開源 CI&CD 軟體,用于自動化各種任務,包括建構、測試和部署軟體。Jenkins 支援各種運作方式,可通過系統包、Docker 或者通過一個獨立的 Java 程式。

二、安裝
環境說明
作業系統:centos 7.6
docker版本:19.03.12
ip位址:192.168.31.145
配置:2核4g
下載下傳鏡像
docker pull jenkins/jenkins:lts
複制
注意:這個是長期技術支援版
封裝鏡像
由于預設沒有maven,是以我需要封裝一下。
建立目錄/opt/myjenkins/,目錄結構如下:
./
├── dockerfile
└── settings.xml
複制
dockerfile
FROM jenkins/jenkins:lts
ADD settings.xml /
USER root
RUN apt-get update && \
apt-get install -y maven && \
apt-get clean all && \
mv /settings.xml /etc/maven/settings.xml
複制
說明:
USER root 表示以root使用者運作,這樣jenkins執行某些任務時,不會出現沒有權限的情況。
settings.xml
這個是maven配置檔案,去掉了注釋部分。增加阿裡雲maven倉庫
<?xml version="1.0" encoding="UTF-8"?>
<settings
xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
<pluginGroups></pluginGroups>
<proxies></proxies>
<servers></servers>
<mirrors>
<mirror>
<id>nexus-aliyun</id>
<mirrorOf>central</mirrorOf>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
</mirrors>
<profiles></profiles>
</settings>
複制
注意:配置阿裡雲maven倉庫,可以很快速的下載下傳一些jar包。
建構并運作
docker build -t myjenkins:1 .
mkdir -p /data/jenkins/data /data/jenkins/maven
docker run -d \
--restart=always \
--name=jenkins \
-u root \
-p 8080:8080 -p 50000:50000 \
-v /data/jenkins/data:/var/jenkins_home \
-v /data/jenkins/maven/m2:/root/.m2 \
myjenkins:1
複制
說明:
/data/jenkins/data 用來儲存jenkins資料目錄
/data/jenkins/maven/m2 用來儲存建構maven項目時,從aliyun下載下傳的一些jar包。
檢視日志
docker logs -f jenkins
複制
如果出現
Jenkins initial setup is required. An admin user has been created and a password generated.
Please use the following password to proceed to installation:
複制
表示啟動完成了
配置鏡像加速
推薦清華大學鏡像:https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
修改檔案
vi /data/jenkins/data/hudson.model.UpdateCenter.xml
複制
完整内容如下:
<?xml version='1.1' encoding='UTF-8'?>
<sites>
<site>
<id>default</id>
<url>https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json</url>
</site>
</sites>
複制
重新開機jenkins
docker restart jenkins
複制
三、nginx釋出jenkins
安裝nginx
yum install -y nginx
mkdir -p /data/log/nginx
nginx
複制
配置檔案
vi /etc/nginx/conf.d/jenkins.aliyun.com.conf
複制
内容如下:
server {
listen 80;
server_name jenkins.aliyun.com;
charset utf-8;
access_log /data/log/nginx/jenkins.aliyun.com.access.log main;
error_log /data/log/nginx/jenkins.aliyun.com.error.log;
client_max_body_size 3072m;
location / {
index index.html index.htm;
proxy_pass http://192.168.31.145:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
複制
重新加載配置
nginx -s reload
複制
四、通路頁面
http://jenkins.aliyun.com
複制
注意:如果我們不配置鏡像加速,那麼很有可能會出現: Jenkins 一直卡在 啟動界面 Please wait while Jenkins is getting ready to work
安裝推薦插件
建立使用者
執行個體配置
注意:這裡一定要配置為域名。
登入之後,效果如下:
五、docker指令
如果需要在jenkins裡面,執行docker指令,請參考連結:
https://www.cnblogs.com/xiao987334176/p/13470724.html
本文參考連結:
https://blog.csdn.net/qiuyeyijian/article/details/104507440