Linux下Docker安裝部署Jenkins與Gitlab鉤子配置
一、搭建jenkins
1.搜尋映象:docker search jenkins
2.拉取映象:docker pull jenkins/jenkins
3.建立容器(自己建立一個jenkins目錄)
docker run -t -i -p 8080:8080 -v jenkins:/var/jenkins_home -d --name jenkins jenkins/jenkins
二、nginx配置
upstream jenkins {
server 127.0.0.1:8080;
}
server {
listen 80;
server_name Jenkins.test.demo;
location / {
#proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://jenkins;
proxy_read_timeout 120;
proxy_ignore_client_abort on;
}
}
三、jenkins配置
1.開啟Jenkins.test.demo(nginx中配置的域名)或者 127.0.0.1:8080,等待一會後到如下介面,根據提示覆製出密碼
2.選擇安裝推薦的外掛(等待...)-》建立第一個管理員-》例項配置-》儲存並完成-》開始使用
3.安裝一些外掛:Publish Over SSH、SSH、Generic Webhook Trigger、Gitlab、Git Parameter
Manage jenkins-》manage Plugins
所有外掛安裝完成後重啟:Jenkins.test.demo/restart
4.配置宿主機docker容器ssh免密登入到宿主機(或者其他遠端伺服器),並能夠執行宿主機shell指令碼(重要!!!)
1)進入到容器中,執行:ssh-keygen -m PEM -t rsa -b 4096
2)將生成的公鑰(id_rsa.pub)追加至宿主機~/.ssh/authorized_keys
5.jenkins配置git賬號密碼
系統管理-》Manage Credentials-》全域性-》新增憑據
6.jenkins配置ssh免密登入資訊
1)系統管理-》系統配置-》Publish over SSH
2)-》新增
3)-》儲存
四、jenkins配置gitlab全域性憑據
1.設定gitlab訪問令牌
生成的token自行儲存,無法二次訪問
2.系統管理-》Manage Credentials-》全域性-》新增憑據
五、jenkins任務
1.jenkins-》新建任務-》輸入任務名稱-》構建一個自由風格的軟體專案-》確定
2.-》原始碼配置
3.-》構建觸發器
以上配置好後,根據提示拿到一個hook連結,用於配置gitlab:http://Jenkins.test.demo/generic-webhook-trigger/invoke?token=test
此處的test就是上面自定義的token值
4.-》構建環境,選擇Abort the build if it's stuck 即可
5.-》構建-》新增構建步驟-》send files or execute commands over SSH
6.-》儲存
六、gitlab鉤子
-》設定-》Webhooks-》配置hook連結-》Add webhoook