最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Docker?安裝Jenkins全過(guò)程及踩坑指南

 更新時(shí)間:2022年02月25日 11:10:53   作者:SpriCoder  
這篇文章主要介紹了Docker?安裝Jenkins?踩坑全指南,本文通過(guò)圖文示例相結(jié)合給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

Docker 安裝 Jenkins

開(kāi)始前最好,將docker升級(jí)到最新版本(至少大于17)

1. 安裝過(guò)程

  • 首先拉取鏡像:docker pull jenkins(我安裝的是Jenkins 2.275)
  • 創(chuàng)建本地?cái)?shù)據(jù)卷:mkdir -p /data/jenkins_home/
  • 修改用戶(hù)授權(quán):chown -R 1000:1000 /data/jenkins_home/
  • 啟動(dòng)容器:
  • docker run -d --name jenkins -p 7900:8080 -p 50000:50000 -v /data/jenkins_home:/var/jenkins_home -v /var/run/docker.sock:/var/run/docker.sock jenkins/jenkins
  • 這里掛載了物理盤(pán)映射
  • 還掛載了docker映射
  • 訪問(wèn)對(duì)應(yīng)網(wǎng)址:xxx:7900
  • 獲取初始管理員密碼(兩種方式,因?yàn)橛成淞吮镜剡壿嬀?
  • docker exec jenkins cat /var/jenkins_home/secrets/initialAdminPassword
  • 或者在進(jìn)入容器后(docker exec -it jenkins /bin/bash):cat /data/jenkins_home/secrets/initialAdminPassword
  • 選擇安裝推薦的插件等待即可
  • 按照流程創(chuàng)建管理員賬戶(hù)
  • 根據(jù)之前的情況創(chuàng)建實(shí)例,即完成

2. Jenkins 安裝 npm

  • 首先以root權(quán)限進(jìn)入容器:docker exec -it -u root jenkins bash

2.1. 替換容器的源

  • 備份:cp /etc/apt/sources.list /etc/apt/sources.list.bak
  • 查看系統(tǒng)版號(hào):lsb_release -c,并且將下文中替換文件中的對(duì)應(yīng)位置進(jìn)行修改
  • 修改:vim /etc/apt/sources.list,如果無(wú)法拉?。?code>sudo apt install apt-transport-https ca-certificates,vim中使用shift+insert插入
  • W: Unable to read /etc/apt/preferences.d/ - DirectoryExists (2: No such file or directory):這時(shí)新建此文件夾即可mkdir /etc/apt/preferences.d
  • 如果沒(méi)有vim,先apt update,然后apt install vim
# 默認(rèn)注釋了源碼鏡像以提高 apt update 速度,如有需要可自行取消注釋
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ buster main contrib non-free
# deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ buster main contrib non-free
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ buster-updates main contrib non-free
# deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ buster-updates main contrib non-free
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ buster-backports main contrib non-free
# deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ buster-backports main contrib non-free
deb https://mirrors.tuna.tsinghua.edu.cn/debian-security buster/updates main contrib non-free
# deb-src https://mirrors.tuna.tsinghua.edu.cn/debian-security buster/updates main contrib non-free
  • 添加node源:curl -sL https://deb.nodesource.com/setup_14.x | sudo bash -

2.2. 安裝nodejs和npm

  • 然后安裝node.js:apt-get install nodejs,一定要先更新源
  • 然后安裝npm:apt-get install npm,
  • 之后替換npm源:npm config set registry http://registry.npm.taobao.org/

3. Jenkins流水線 + Docker + Maven + Github webhooks + Spring boot 

3.1. 需要的插件和配置

3.1.1. 插件

Blue Ocean

Maven Integration

3.1.2. 配置

  • 查看容器的全部信息:docker inspect jenkins,其中的Env項(xiàng)中包含了JAVA_HOME等環(huán)境信息,如下所示
"Env": [
      "PATH=/usr/local/openjdk-8/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
      "LANG=C.UTF-8",
      "JAVA_HOME=/usr/local/openjdk-8",
      "JAVA_VERSION=8u242",
      "JAVA_BASE_URL=https://github.com/AdoptOpenJDK/openjdk8-upstream-binaries/releases/download/jdk8u242-b08/OpenJDK8U-jdk_",
      "JAVA_URL_VERSION=8u242b08",
      "JENKINS_HOME=/var/jenkins_home",
      "JENKINS_SLAVE_AGENT_PORT=50000",
      "REF=/usr/share/jenkins/ref",
      "JENKINS_VERSION=2.275",
      "JENKINS_UC=https://updates.jenkins.io",
      "JENKINS_UC_EXPERIMENTAL=https://updates.jenkins.io/experimental",
      "JENKINS_INCREMENTALS_REPO_MIRROR=https://repo.jenkins-ci.org/incrementals",
      "COPY_REFERENCE_FILE_LOG=/var/jenkins_home/copy_reference_file.log"
]
  • 進(jìn)行全局工具配置:Jenkins -> 系統(tǒng)管理 -> 全局工具管理
  • jdk配置,如果沒(méi)有自動(dòng)安裝,如果有則使用上面的JAVA_HOME地址即可

Git配置

Docker配置

3.1.3. 安裝maven

export MAVEN_HOME=/opt/apache-maven-3.6.3
export MAVEN_HOME
export PATH=$PATH:$MAVEN_HOME/bin

編輯maven的settings.xml來(lái)替換源(位置conf/下),在<mirrors></mirrors>標(biāo)簽內(nèi)添加一下任意一個(gè)

<mirror>
   <id>alimaven</id>
   <name>aliyun maven</name>
   <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
   <mirrorOf>central</mirrorOf>
</mirror>
  • 刷新權(quán)限:source /etc/profile
  • 然后在Jenkins -> 系統(tǒng)管理 -> 全局工具管理繼續(xù)進(jìn)行Maven配置

3.1.4. 配置Jenkins使用Docker

  • 之前在創(chuàng)建容器的時(shí)候已經(jīng)完成了sock的映射
  • 登錄進(jìn)入jenkins容器:docker exec -it -u root jenkins bash
  • 安裝docker client:
apt-get update && \
apt-get -y install apt-transport-https \
     ca-certificates \
     curl \
     gnupg2 \
     software-properties-common && \
curl -fsSL https://download.docker.com/linux/$(. /etc/os-release; echo "$ID")/gpg > /tmp/dkey; apt-key add /tmp/dkey && \
add-apt-repository \
   "deb [arch=amd64] https://download.docker.com/linux/$(. /etc/os-release; echo "$ID") \
   $(lsb_release -cs) \
   stable" && \
apt-get update && \
apt-get -y install docker-ce
  • 通過(guò)輸入docker來(lái)檢查是否成功
  • 授予jenkins用戶(hù)docker權(quán)限:
  • 以root用戶(hù)身份進(jìn)入jenkins容器:docker exec -it -u root jenkins /bin/bash
  • 查看當(dāng)前用戶(hù)情況:ls -l /var/run/docker.sock
  • 授權(quán)jenkins用戶(hù):chown jenkins: /var/run/docker.sock
  • 再次查看用戶(hù)情況:ls -l /var/run/docker.sock
  • 檢查docker ps之類(lèi)的命令是否可以使用

3.1.5. 配置Jenkins中的Git SSH

  • 進(jìn)入jenkins容器:docker exec -it jenkins /bin/bash
  • 生成SSH密鑰:ssh-keygen,一路回車(chē)使用默認(rèn)值
  • 查找密鑰:cat /var/jenkins_home/.ssh/id_rsa.pub
  • 然后登錄Github,在settings->SSH and GPG keys中添加密鑰。

3.1.6. Github添加Webhook

  • 進(jìn)入想要部署的倉(cāng)庫(kù),settings -> webhook,選擇Add Webhook
  • 設(shè)置payload_url為jenkins對(duì)應(yīng)地址:xxx(jenkins訪問(wèn)網(wǎng)址)/github-webhook/
  • 選擇Just the push event.Active后保存即可

3.1.7. 配置主從節(jié)點(diǎn)

避免出現(xiàn)如下報(bào)錯(cuò):pending—Waiting for next available executor

  • 進(jìn)入對(duì)應(yīng)位置:系統(tǒng)管理 -> 節(jié)點(diǎn)管理
  • 點(diǎn)擊配置主從節(jié)點(diǎn),設(shè)置至少為2個(gè)。

3.2. 使用流水線新建任務(wù)

  • 點(diǎn)擊新建任務(wù),新建一個(gè)名為Jenkins-Demo的流水線任務(wù)

  • 構(gòu)建觸發(fā)器選擇GitHub hook trigger for GITScm polling

  • 流水線中(jenkinsfile文件放置在倉(cāng)庫(kù)根目錄下)
  • 定義選擇Pipeline script from SCM
  • SCM選擇Git
  • Repository URL輸入對(duì)應(yīng)倉(cāng)庫(kù)的git@xxx.git地址
  • 如果出現(xiàn)報(bào)錯(cuò)如下,則先進(jìn)入jenkins容器輸入命令git ls-remote -h -- git@github.com:xxx.git HEAD:并輸入yes確認(rèn)
無(wú)法連接倉(cāng)庫(kù):Command "git ls-remote -h -- git@github.com:xxx.git HEAD" returned status code 128:
stdout:
stderr: Host key verification failed.
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists
  • 最后指定分支為main,整體如下圖所示

  • 之后選擇保存即可
  • 之后點(diǎn)擊立即構(gòu)建來(lái)查看效果

4. GitLab + Jenkins + Spring Boot

4.1. 配置GitLab插件和連接

  • Jenkins需要安裝插件GitLab Plugin和GitLab Hook Plugin
  • 進(jìn)入系統(tǒng)配置,找到GitLab的配置位置,進(jìn)行配置

  • 注意上面需要的API token需要到GitLab的用戶(hù)設(shè)置中,生成Personal Access Tokens
  • 填寫(xiě)完成后點(diǎn)擊Test Connection,如果顯示Success表示配置成功
  • 完成GitLab的Ssh配置,過(guò)程完全類(lèi)似第二大步中的對(duì)應(yīng)步驟。

4.2. 創(chuàng)建項(xiàng)目

  • 勾選Build when a change is pushed to GitLab. GitLab webhook URL:
  • 下拉找到點(diǎn)擊高級(jí),找到Allowed branches,選擇Filter branch by name(一般是master)
  • 在下拉,來(lái)到流水線中,選擇Pipeline script from SCM,URL填寫(xiě)GitLab獲取的URL,進(jìn)行測(cè)試(注意如果出現(xiàn)git ls-remote -h -- ssh://git@xxx.git HEAD,第一次是需要進(jìn)入容器執(zhí)行該命令,并輸入yes)
  • 進(jìn)入GitLab的對(duì)應(yīng)項(xiàng)目倉(cāng)庫(kù),找到settings->integration配置剛剛得到的webhook URL(注意看提示),然后點(diǎn)擊Test(模擬一次Push events),如果返回為403碼,則查看參考八
  • 之后配置好jenkinsfile,然后跟蹤構(gòu)建結(jié)果即可。

5. Jenkins 使用Pipeline集成Cobertura(不支持Java 1.8)

  • jenkins首先安裝插件Cobertura Plugin
  • 在pom文件的build->plugins下添加如下的plugin以生成xml格式的覆蓋率檢查報(bào)告
<plugin>
   <groupId>org.codehaus.mojo</groupId>
   <artifactId>cobertura-maven-plugin</artifactId>

   <configuration>
      <formats>
         <format>xml</format>
      </formats>
      <check/>
   </configuration>
</plugin>
  • 使用:mvn cobertura:cobertura生成相應(yīng)的測(cè)試報(bào)告,默認(rèn)路徑為**/target/site/cobertura/
  • 在流水線中添加如下post以添加覆蓋報(bào)告到Jenkins UI。
post {
   always {
      step([$class: 'CoberturaPublisher', autoUpdateHealth: false, autoUpdateStability: false, coberturaReportFile: '**/target/site/cobertura/coverage.xml', failUnhealthy: false, failUnstable: false, maxNumberOfBuilds: 0, onlyStable: false, sourceEncoding: 'ASCII', zoomCoverageChart: false, enableNewApi: true])
   }
}

6. Jenkins 使用pipeline集成jacoco

  • 在jenkins中安裝jacoco插件
  • 在html發(fā)布后發(fā)現(xiàn)了403問(wèn)題,在script界面運(yùn)行System.clearProperty("hudson.model.DirectoryBrowserSupport.CSP")
  • 之后重新構(gòu)建并發(fā)布HTML報(bào)告即可

7.參考

實(shí)用插件

Jenkins 嵌入到 Iframe

Jenkins用戶(hù)組管理

配置Jenkins的分布式構(gòu)建和部署

jenkins分布式構(gòu)建和部署(master-slave)

  1. Jenkins官方教程
  2. Docker 安裝 Jenkins (超詳細(xì))
  3. Jenkins 插件安裝失敗解決辦法
  4. Jenkins+Docker+github+Spring Boot自動(dòng)化部署
  5. Jenkins容器中安裝Docker
  6. Jenkins持續(xù)集成顯示pending—Waiting for next available executor
  7. 30分鐘搞定 Jenkins CI
  8. gitlab webhook jenkins 403問(wèn)題解決方案
  9. jenkins安全內(nèi)容配置策略

到此這篇關(guān)于Docker 安裝Jenkins 踩坑全指南的文章就介紹到這了,更多相關(guān)Docker 安裝Jenkins內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 減少Docker鏡像大小的10個(gè)優(yōu)化技巧

    減少Docker鏡像大小的10個(gè)優(yōu)化技巧

    當(dāng)使用Docker時(shí),鏡像大小是一個(gè)很大的問(wèn)題,下面這篇文章主要給大家介紹了關(guān)于減少Docker鏡像大小的10個(gè)優(yōu)化技巧,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-01-01
  • Windows Docker 部署 SolrCloud的方法步驟

    Windows Docker 部署 SolrCloud的方法步驟

    本文主要介紹了Windows Docker 部署 SolrCloud的方法步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2024-10-10
  • 如何刪除docker-register鏡像及none無(wú)效鏡像詳解

    如何刪除docker-register鏡像及none無(wú)效鏡像詳解

    這篇文章主要給大家介紹了關(guān)于如何刪除docker-register鏡像及none無(wú)效鏡像的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-09-09
  • 更改docker默認(rèn)數(shù)據(jù)目錄的方法步驟

    更改docker默認(rèn)數(shù)據(jù)目錄的方法步驟

    本文主要介紹了更改docker默認(rèn)數(shù)據(jù)目錄的方法步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2025-01-01
  • 關(guān)于Docker 刪除dead狀態(tài)的容器問(wèn)題及解決方案

    關(guān)于Docker 刪除dead狀態(tài)的容器問(wèn)題及解決方案

    這篇文章主要介紹了Docker 刪除dead狀態(tài)的容器,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-05-05
  • 使用docker部署grafana+prometheus配置

    使用docker部署grafana+prometheus配置

    這篇文章主要介紹了docker部署grafana+prometheus配置,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-12-12
  • 部署維護(hù)docker環(huán)境的詳細(xì)教程

    部署維護(hù)docker環(huán)境的詳細(xì)教程

    這篇文章主要介紹了部署維護(hù)docker環(huán)境的詳細(xì)教程,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2017-02-02
  • 物理機(jī)與啟動(dòng)的Docker容器間的目錄映射方式

    物理機(jī)與啟動(dòng)的Docker容器間的目錄映射方式

    這篇文章主要介紹了物理機(jī)與啟動(dòng)的Docker容器間的目錄映射方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • Docker 數(shù)據(jù)持久化的三種方式小結(jié)

    Docker 數(shù)據(jù)持久化的三種方式小結(jié)

    本文主要介紹了Docker 數(shù)據(jù)持久化的三種方式小結(jié),主要包括volume、bind mounts、tmpfs mounts這三種方式,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-01-01
  • docker安裝后導(dǎo)致的網(wǎng)絡(luò)問(wèn)題及解決

    docker安裝后導(dǎo)致的網(wǎng)絡(luò)問(wèn)題及解決

    這篇文章主要介紹了docker安裝后導(dǎo)致的網(wǎng)絡(luò)問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-11-11

最新評(píng)論

宁海县| 高雄市| 乾安县| 南郑县| 七台河市| 林口县| 武义县| 阿拉尔市| 高阳县| 富川| 扬州市| 北辰区| 岳阳县| 永城市| 阜新市| 温州市| 西乌珠穆沁旗| 葫芦岛市| 江川县| 双城市| 万荣县| 普陀区| 昌吉市| 五常市| 裕民县| 江达县| 梅州市| 鄂州市| 潜江市| 嵩明县| 勃利县| 晋宁县| 鄂尔多斯市| 洮南市| 涟源市| 精河县| 鸡西市| 克什克腾旗| 嘉黎县| 襄汾县| 绿春县|