欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Docker搭建Jenkins實(shí)現(xiàn)自動(dòng)部署的圖文教程

 更新時(shí)間:2025年05月21日 09:53:49   作者:代碼怪獸大作戰(zhàn)  
本文主要介紹了Docker搭建Jenkins實(shí)現(xiàn)自動(dòng)部署教程,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

概要

Jenkins 和 GitLab 是兩個(gè)流行的工具,通常一起使用來(lái)實(shí)現(xiàn)持續(xù)集成和持續(xù)交付(CI/CD)。以下是如何在 Jenkins 中集成 GitLab 的基本步驟:

  • 安裝 Jenkins
    首先,在服務(wù)器上安裝 Jenkins??梢詮?Jenkins 的官方網(wǎng)站(https://www.jenkins.io/download/)下載適用于您操作系統(tǒng)的安裝包,并按照安裝說(shuō)明進(jìn)行安裝 或者 使用Docker容器。

  • 安裝 GitLab 插件
    在 Jenkins 中安裝 GitLab 插件,以便與 GitLab 服務(wù)器進(jìn)行集成。您可以通過(guò) Jenkins 管理面板的插件管理器來(lái)安裝該插件。

  • 配置 Jenkins 項(xiàng)目
    在 Jenkins 中創(chuàng)建一個(gè)新的項(xiàng)目(或者使用現(xiàn)有的項(xiàng)目)。
    在項(xiàng)目配置中,選擇 GitLab 作為版本控制工具,并提供 GitLab 倉(cāng)庫(kù)的 URL。
    配置 Jenkins 如何獲取源代碼,您可以選擇通過(guò) SSH 密鑰或者 GitLab 的訪問(wèn)令牌進(jìn)行認(rèn)證。
    配置構(gòu)建觸發(fā)器,例如當(dāng) GitLab 上的特定分支有新的提交時(shí)觸發(fā)構(gòu)建。

  • 配置構(gòu)建步驟
    在 Jenkins 項(xiàng)目中添加構(gòu)建步驟,例如構(gòu)建、測(cè)試、部署等。您可以使用 Jenkins 的插件來(lái)執(zhí)行這些步驟,或者通過(guò)調(diào)用 shell 腳本來(lái)執(zhí)行相關(guān)操作。

環(huán)境安裝

linux上進(jìn)行docker安裝有兩種方式:

  • Docker自動(dòng)化安裝
  • Docker手動(dòng)安裝

可以根據(jù)該文章的步驟進(jìn)行安裝:http://www.dbjr.com.cn/server/339879ek2.htm

搭建Jenkins容器

  • 拉取jenkins鏡像
docker pull jenkins/jenkins:lts-alpine-jdk17
  • 生成jenkins容器
#!/bin/bash

# 設(shè)置變量
PORT=8081
PROJECT_DIR="/opt/docker/jenkins"

# 創(chuàng)建目錄結(jié)構(gòu)
mkdir -p "$PROJECT_DIR/jenkins_home"
mkdir -p "$PROJECT_DIR/logs"

# 運(yùn)行 Jenkins 容器
docker run -d \
  --restart=always \
  --privileged=true \
  --name jenkins \
  -u root \
  -p "$PORT:8080" \
  -v "$PROJECT_DIR/jenkins_home:/var/jenkins_home" \
  -v "$PROJECT_DIR/logs:/var/log/jenkins" \
  -v "/var/run/docker.sock:/var/run/docker.sock" \
  -v "/etc/localtime:/etc/localtime" \
  jenkins/jenkins:lts-alpine-jdk17

注意:如果需要在jenkins的docker容器中去構(gòu)建docker或者打包鏡像的話需要進(jìn)入容器內(nèi),安裝docker命令行工具,Docker CLI 提供了豐富的命令和選項(xiàng),可以用于構(gòu)建、運(yùn)行、管理和監(jiān)視 Docker 容器。

docker exec -it jenkins /bin/sh

apk add docker-cli

通過(guò)shell腳本運(yùn)行生成jenkisn容器

在這里插入圖片描述

登陸網(wǎng)址,測(cè)試jenkins是否運(yùn)行成功

在這里插入圖片描述

配置Jenkins

  • 首次登陸,根據(jù)密碼提示地址,找到初始密碼,修改jenkins密碼并登陸進(jìn)行設(shè)置
  • 安裝相應(yīng)的插件

在這里插入圖片描述

安裝插件

gitLab(代碼管理)

在這里插入圖片描述

pipeline(流水線)(jenkins推薦安裝時(shí)自動(dòng)安裝)

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

SSH(遠(yuǎn)程登錄連接)

在這里插入圖片描述

NodeJs(前端構(gòu)建)

在這里插入圖片描述

Role(jenkins用戶權(quán)限控制插件)

在這里插入圖片描述

SonarQube(代碼檢測(cè)插件)

在這里插入圖片描述

記錄job的歷史更新記錄插件(可找到歷史命令腳本)

在這里插入圖片描述

在jenkins容器中安裝JDK、Maven、Node等環(huán)境(位置docker jenkins_home中)

jdk:jenkins docker 一般會(huì)自帶jdk版本(自帶的最方便)

jdk最好在docker容器中安裝openjdk使用,不會(huì)出現(xiàn)no found的情況

在這里插入圖片描述

mavan:將maven的壓縮包解壓到相應(yīng)位置

node

  • 進(jìn)入jenkins對(duì)應(yīng)容器中docker exec -it [對(duì)應(yīng)容器id] bash
  • 安裝nodejs , apk add --no-cache nodejs
  • 再將需要的其他版本node的壓縮包解壓到相應(yīng)位置 或者 可以在jenkins中選擇自動(dòng)安裝node版本

注意: apk add --no-cache nodejs 這一步是必須的 否則構(gòu)建前端可能會(huì)出現(xiàn)env: ‘node’: No such
file or directory的錯(cuò)誤

在這里插入圖片描述

配置JDK、Maven、Node環(huán)境

全局屬性配置

系統(tǒng)管理——>系統(tǒng)配置——>全局屬性

在這里插入圖片描述

gitLab配置

在這里插入圖片描述

SSH配置

在jenkins_home中加入私鑰文件(用于遠(yuǎn)程訪問(wèn)其他服務(wù)器等)

在這里插入圖片描述

在這里插入圖片描述

注意:首次訪問(wèn)遠(yuǎn)程服務(wù)器時(shí),需要在jenkins的docker容器內(nèi) 輸入命令ssh xxx.xxx.xxx.xxx 訪問(wèn)其他服務(wù)器
授權(quán)成功后,jenkins才能無(wú)阻礙的訪問(wèn)其他服務(wù)器,否則jenkins執(zhí)行腳本會(huì)訪問(wèn)失敗
如果id_rsa 不行,那么就再加到 /root/.ssh/id_rsa 里面去
jenkins沒(méi)足夠權(quán)限訪問(wèn) 就 chmod 600 ~/.ssh/id_rsa

在這里插入圖片描述

被訪問(wèn)的服務(wù)器需要填入公鑰

在這里插入圖片描述

注意:若jenkins是docker運(yùn)行,若id_rsa文件(ssh私鑰)不存在需要將id_rsa文件生成在容器內(nèi)的jenkins_home目錄下,才會(huì)生效

在這里插入圖片描述

在SSH Server中加入需要遠(yuǎn)程連接的服務(wù)器,填寫完成后,可以點(diǎn)擊Test Configuration 查看是否成功

注意:遠(yuǎn)程連接的服務(wù)器需要在該服務(wù)器的/root/.ssh/authorized_keys文件中加入公鑰

在這里插入圖片描述

配置 全局工具配置

1. Maven 配置

在這里插入圖片描述

2. JDK 安裝

在這里插入圖片描述

3. git安裝

在這里插入圖片描述

4. Maven安裝

在這里插入圖片描述

5. NodeJs安裝

在這里插入圖片描述

Role-based Authorization Strategy插件配置用戶權(quán)限

1.配置用戶權(quán)限流程

在這里插入圖片描述

2.設(shè)置Global roles 全局角色設(shè)置 和 Item roles 項(xiàng)目設(shè)置

在這里插入圖片描述

3.配置角色權(quán)限范圍

在這里插入圖片描述

小結(jié)

可能遇見的問(wèn)題:

1. 登陸初始密碼后報(bào)錯(cuò),該Jenkins實(shí)例似乎已離線。

在這里插入圖片描述

解決方案:

原因一:升級(jí)站點(diǎn)的鏈接https://updates.jenkins.io/update-center.json默認(rèn)是https

修改升級(jí)站點(diǎn)的鏈接

保留此離線頁(yè)面,重新開啟一個(gè)瀏覽器tab標(biāo)簽頁(yè)

  • 輸入jenkins登陸網(wǎng)址http://localhost:8080/pluginManager/advanced (自己的登陸地址+路徑/pluginManager/advanced )
  • 進(jìn)入該頁(yè)面最底下,找到【Update Site】,把其中的鏈接改成http,http://updates.jenkins.io/update-center.json,點(diǎn)擊Submit保存,Check now 能夠檢測(cè)當(dāng)前URL是否能夠更新站點(diǎn);
  • 提示jenkins,在重新啟動(dòng)jenkins,已經(jīng)可以重新連網(wǎng),下載插件

在這里插入圖片描述

重要:如果改完Http還是不行,請(qǐng)改成如下鏡像
https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
http://mirror.esuni.jp/jenkins/updates/update-center.json
http://mirror.xmission.com/jenkins/updates/update-center.json

原因二:Jenkins在下載插件之前會(huì)檢查網(wǎng)絡(luò)鏈接,會(huì)去讀取配置文件的網(wǎng)址Jenkins_home/updates/default.json

修改default.json文件

  • 不管是用本地運(yùn)行war包的方式啟動(dòng)的Jenkins,還是Docker運(yùn)行的Jenkins,找到運(yùn)行目錄下(Docker就是掛載出來(lái)的目錄)
  • 一個(gè)叫updates目錄,修改里面的default.json文件,把第一個(gè)遇到的www.google.com,修改成www.baidu.com
  • 重啟jenkins

注意:要先關(guān)閉jenkins后才能對(duì)該文件進(jìn)行修改,否則修改保存無(wú)法生效
(docker 運(yùn)行的jenkins 一定要掛載目錄(如:Jenkins_home) 否則容器關(guān)閉后無(wú)法進(jìn)入容器內(nèi)修改default.json文件)

在這里插入圖片描述

在這里插入圖片描述

原因三:Jenkins訪問(wèn)連接被防火墻阻攔

關(guān)閉防火墻

  • 檢查防火墻狀態(tài):systemctl status firewalld.service
  • 手動(dòng)關(guān)閉防火墻:systemctl stop firewalld.service
  • 關(guān)閉防火墻開機(jī)自啟:systemctl disable firewalld.service

原因四:Jenkins版本太老

  • 重新拉取其他版本的jenkins鏡像,換一個(gè)可能就會(huì)成功,一般前面三個(gè)原因的不會(huì)出現(xiàn),大概率的鏡像版本引起的。
  • 例如:使用jenkins/jenkins:lts-alpine-jdk11 jenkins離線無(wú)法下載插件,換成jenkins/jenkins:lts-alpine-jdk17 就能正常運(yùn)行

2. 前端npm構(gòu)建找不到,env: ‘node’: No such file or directory

原因:出現(xiàn)問(wèn)題是docker jenkins 里面沒(méi)有自動(dòng)安裝node導(dǎo)致找不到這個(gè)Node命令
解決方案:手動(dòng)安裝nodejs

# 進(jìn)入jenkins對(duì)應(yīng)容器中
# docker exec -it [對(duì)應(yīng)容器id] bash
 
# 安裝nodejs
# apk add --no-cache nodejs
 
# 檢查node
# node -v

3. pipeline執(zhí)行過(guò)程中g(shù)it參數(shù)的commit 版本選擇出現(xiàn) 版本無(wú)法顯示的問(wèn)題

在這里插入圖片描述

原因:原因未知

解決方案:
重新創(chuàng)建一個(gè)新的pipeline任務(wù),可能解決該問(wèn)題。

在這里插入圖片描述

到此這篇關(guān)于Docker搭建Jenkins實(shí)現(xiàn)自動(dòng)部署教程的文章就介紹到這了,更多相關(guān)Docker搭建Jenkins自動(dòng)部署內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家! 

相關(guān)文章

  • Docker自動(dòng)化構(gòu)建Automated Build實(shí)現(xiàn)過(guò)程圖解

    Docker自動(dòng)化構(gòu)建Automated Build實(shí)現(xiàn)過(guò)程圖解

    這篇文章主要介紹了Docker自動(dòng)化構(gòu)建Automated Build實(shí)現(xiàn)過(guò)程圖解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-10-10
  • docker容器中crontab無(wú)法正常運(yùn)行解決方案

    docker容器中crontab無(wú)法正常運(yùn)行解決方案

    相信很多人看完docker容器, 需要加crontab, 加完卻發(fā)現(xiàn)不能執(zhí)行,什么原因造成的呢?下面小編給大家分享docker容器中crontab無(wú)法正常運(yùn)行的解決方案,需要的朋友參考下吧
    2017-01-01
  • docker啟動(dòng)springboot項(xiàng)目容器閃退的解決

    docker啟動(dòng)springboot項(xiàng)目容器閃退的解決

    本文主要介紹了docker啟動(dòng)springboot項(xiàng)目容器閃退,大部分原因是啟動(dòng)報(bào)錯(cuò),文中通過(guò)圖文示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2024-07-07
  • Docker實(shí)現(xiàn)TLS和CA認(rèn)證的方法步驟

    Docker實(shí)現(xiàn)TLS和CA認(rèn)證的方法步驟

    為了更便捷地連接Docker服務(wù)器,Docker服務(wù)器需要開放2375端口才能連接docker,本文主要介紹了Docker實(shí)現(xiàn)TLS和CA認(rèn)證的方法步驟,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-06-06
  • Centos7安裝docker compse踩過(guò)的坑及解決方法

    Centos7安裝docker compse踩過(guò)的坑及解決方法

    本文,我們介紹如何在centos7環(huán)境下安裝docker-compose, 記錄下安裝過(guò)程步驟以及遇到的問(wèn)題還有解決辦法,感興趣的朋友參考下吧
    2018-01-01
  • Docker NFS volume創(chuàng)建與使用方式

    Docker NFS volume創(chuàng)建與使用方式

    這篇文章主要介紹了Docker NFS volume創(chuàng)建與使用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-02-02
  • docker save和docker load的具體使用

    docker save和docker load的具體使用

    本文詳細(xì)介紹了docker save和docker load命令的使用方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2024-11-11
  • Ubuntu24.04LTS在線安裝Docker引擎的詳細(xì)過(guò)程

    Ubuntu24.04LTS在線安裝Docker引擎的詳細(xì)過(guò)程

    本文介紹了在Ubuntu 24.04 LTS系統(tǒng)上安裝Docker引擎的步驟,包括卸載舊版本、設(shè)置Docker APT倉(cāng)庫(kù)、安裝最新版或指定版本的Docker,本文給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧
    2024-11-11
  • 使用Docker部署Nginx并掛載目錄詳解

    使用Docker部署Nginx并掛載目錄詳解

    這篇文章主要為大家詳細(xì)介紹了使用Docker部署Nginx并掛載目錄的相關(guān)方法,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2025-04-04
  • docker批量刪除臨時(shí)鏡像

    docker批量刪除臨時(shí)鏡像

    在開發(fā)的時(shí)候,需要經(jīng)常發(fā)布開發(fā)包,在使用docker build構(gòu)建鏡像的時(shí)候,同一個(gè)版本經(jīng)常會(huì)使用相同tag,頻繁打包一段時(shí)間后,本地會(huì)出現(xiàn)很多Tag=<none>的臨時(shí)鏡像,下面給大家分享相關(guān)命令docker批量刪除Tag=<none>的臨時(shí)鏡像,感興趣的朋友一起看看吧
    2024-07-07

最新評(píng)論