在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

基于 Docker 與 Jenkins 實現自動化部署

jf_21561199 ? 來源:jf_21561199 ? 作者:jf_21561199 ? 2025-01-07 17:25 ? 次閱讀

前言

重塑自動化部署新高度,Docker 攜手 Jenkins,在華為云 Flexus X 云服務器的加持下,引領持續集成與部署的新紀元。Flexus X 以其卓越的性能、靈活的資源配置和高效的成本優化,為 Docker 容器化應用與 Jenkins 自動化流水線提供了理想的運行環境。無論是快速構建、測試還是部署,Flexus X 都能確保流程順暢無阻,大幅提升軟件開發與交付效率。立即擁抱華為云 828 企業上云節優惠,開啟您的 Docker 與 Jenkins 自動化部署之旅,讓軟件創新更快一步!

鏈接直達華為云Flexus云服務器X實例

wKgZPGd88vSARHEhAAEA43MSbXE167.png

Jenkins 介紹

Jenkins 是一個開源的持續集成和持續部署(CI/CD)工具,它基于 Java 開發,支持各種編程語言和平臺。Jenkins 以其強大的功能和靈活性,在現代軟件開發中扮演著重要角色。

Jenkins 應用廣泛,大多數互聯網公司都采用 Jenkins 配合 GitLab、Docker、K8s 作為實現 DevOps 的核心工具。

Jenkins 最強大的就在于插件,Jenkins 官方提供了大量的插件庫,來自動化 CI/CD 過程中的各種瑣碎功能。

Jenkins 最主要的工作就是將 GitLab 上可以構建的工程代碼拉取并且進行構建,再根據流程可以選擇發布到測試環境或是生產環境。

Jenkins 需要大量的插件保證工作,安裝成本較高,下面會基于 Docker 搭建 Jenkins。

CI/CD 的理解

一般是 GitLab 上的代碼經過大量的測試后,確定發行版本,再發布到生產環境。

CI/CD 可以理解為:

?CI 過程即是通過 Jenkins 將代碼拉取、構建、制作鏡像交給測試人員測試。

–持續集成:讓軟件代碼可以持續的集成到主干上,并自動構建和測試。

?CD 過程即是通過 Jenkins 將打好標簽的發行版本代碼拉取、構建、制作鏡像交給運維人員部署。

–持續交付:讓經過持續集成的代碼可以進行手動部署。

–持續部署:讓可以持續交付的代碼隨時隨地的自動化部署。

wKgZPGd88vWAL2RhAAOvW3NGU4g483.png

華為云 Flexus X 實例部署 Jenkins 的特點

靈活高效部署:華為云 FlexusX 結合 Docker,讓 Jenkins 部署變得靈活且高效,資源動態調整,構建速度顯著提升。

穩定安全運行:FlexusX 的穩定性和 Docker 的隔離性為 Jenkins 提供可靠運行環境,確保高負載下穩定運行,同時保障數據安全。

簡化管理運維:一鍵部署與華為云統一管理界面,極大簡化了 Jenkins 在 FlexusX 上的部署與管理流程,提升運維效率。

豐富插件支持:Jenkins 龐大的插件生態與 FlexusX 實例完美融合,滿足多樣化項目需求,為軟件開發團隊提供強大支持。

接下來讓我們使用 docker,一起走進 Jenkins 的世界!

環境規劃

部署流程

需要了解:

?采用 docker 方式進行部署 Jenkins(CI/CD)工具

?詳細購買配置實例可參考文章:快速部署華為云Flexus X實例,開啟您的云端之旅

?部署 docker 服務請參考文章:華為FlexusX與Docker+Nginx的高效整合之路

配置 jdk 環境

注意:選擇適合自己的 JDK,并且注意安裝 JDK 的系統

地址:https://www.oracle.com/java/technologies/downloads/

上傳軟件包 openjdk-12.0.2_linux-x64_bin.tar.gz到實例中

[root@flexusx-251f~]# mkdir /usr/local/java[root@flexusx-251f~]# cd /usr/local/java/[root@flexusx-251fjava]# lsopenjdk-12.0.2_linux-x64_bin.tar.gz

解壓軟件包

[root@flexusx-251fjava]# tar -zxvfopenjdk-12.0.2_linux-x64_bin.tar.gz

添加 java 環境變量,在文件最后添加

[root@flexusx-251f~]# vim /etc/profile[root@flexusx-251f~]# cat /etc/profile..........exportJAVA_HOME=/usr/local/java/jdk-12.0.2exportPATH=$JAVA_HOME/bin:$PATH#加載配置文件[root@flexusx-251f~]# source /etc/profile

查看 java 版本

[root@flexusx-251f~]# java -versionopenjdkversion "12.0.2"2019-07-16OpenJDKRuntime Environment (build12.0.2+10)OpenJDK64-Bit Server VM (build12.0.2+10, mixed mode, sharing)

配置 Maven 環境

打開 Maven 官網下載對應軟件包:Maven – Download Apache Maven

根據自身需求選擇對應版本,在本實例中選擇 v3.9.9

wKgZO2d88vWAO_mjAAJCHuNYzNg601.png

上傳軟件包

[root@flexusx-251f~]# mkdir -p/usr/local/maven[root@flexusx-251f~]# cd /usr/local/maven/[root@flexusx-251fmaven]# lsapache-maven-3.9.9-bin.tar.gz[root@flexusx-251fmaven]# tar -zxvfapache-maven-3.9.9-bin.tar.gz[root@flexusx-251fmaven]# lsapache-maven-3.9.9apache-maven-3.9.9-bin.tar.gz[root@flexusx-251fmaven]# cd apache-maven-3.9.9/[root@flexusx-251fapache-maven-3.9.9]# lsbinboot conf lib LICENSE NOTICE README.txt

解壓完畢以后,新建一個 repository 倉庫,用于存放 Maven 下載下來的 jar 包

[root@flexusx-251fmaven]# mkdir repository

編輯 settings.xml 文件

設置 maven 倉庫

[root@flexusx-251fmaven]# cd apache-maven-3.9.9/[root@flexusx-251fapache-maven-3.9.9]# vim conf/settings.xml.....................49 55/usr/local/maven/repository#設置鏡像倉庫地址...........

配置鏡像,配置為阿里云鏡像地址

................................................. maven-default-http-blockerexternal:http:*Pseudo repositoryto mirror external repositories initially using HTTP.http://0.0.0.0/true #修改為阿里云鏡像地址nexus-aliyuncentralNexus aliyunhttps://maven.aliyun.com/repository/public...................

配置環境變量

[root@flexusx-251fmaven]# vim /etc/profile...#在文件最后加入兩行參數信息 exportMAVEN_HOME=/usr/local/maven/apache-maven-3.9.9exportPATH=$PATH:$MAVEN_HOME/bin[root@flexusx-251fmaven]# mvn -vApacheMaven 3.9.9 (8e8579a9e76f7d015ee5ec7bfcdc97d260186937)Mavenhome: /usr/local/maven/apache-maven-3.9.9Javaversion: 12.0.2, vendor: Oracle Corporation, runtime: /java/jdk-12.0.2Defaultlocale: en_US, platform encoding: UTF-8OSname: "linux", version: "5.10.0-182.0.0.95.r1941_123.hce2.x86_64", arch: "amd64", family: "unix"

搭建 Jenkins

創建對應目錄,編寫 docker-compose 文件

[root@flexusx-251f~]# mkdir /jenkins[root@flexusx-251f~]# cd /jenkins/[root@flexusx-251fjenkins]# mkdir data[root@flexusx-251fjenkins]# vim docker-compose.yaml[root@flexusx-251fjenkins]# cat docker-compose.yamlversion:"2.29.1" #指定 docker-compose 版本 services:myjenkins:image:jenkins/jenkins #指定鏡像名稱container_name:myjenkins #指定容器名稱ports:-"1020:8080" #用于主機訪問 Jenkins 的 Web 界面-"1021:50000" #用于 Jenkins 的代理(agent)連接volumes:-/jenkins/data/:/var/jenkins_home/ #指定對應目錄-/usr/local/java/jdk-12.0.2:/usr/local/java #掛載 java-/usr/local/maven/apache-maven-3.9.9:/usr/local/maven #掛載 mavenenvironment:-JAVA_OPTS=-Dorg.apache.commons.jelly.tags.fmt.timeZone='Asia/Shanghai' #指定時間restart:always[root@flexusx-251fjenkins]# docker-compose up -dWARN[0000]/jenkins/docker-compose.yaml:the attribute `version`is obsolete, it will be ignored, please remove it to avoid potential confusion[+]Running 2/2?Network jenkins_default Created 0.0s?Container jenkins Started 0.2s[root@flexusx-251fjenkins]# docker-compose lsNAMESTATUS CONFIG FILESjenkinsrunning(1)/jenkins/docker-compose.yaml[root@flexusx-251fjenkins]# docker ps |grepjen8e2fba3b21aajenkins/jenkins "/usr/bin/tini -- /u…"18 seconds ago Up 17 seconds 0.0.0.0:1020->8080/tcp, :::1020->8080/tcp, 0.0.0.0:1021->50000/tcp, :::1021->50000/tcp jenkins

初始化配置 Jenkins

Flexus X 實例 放行端口 1020,1021

wKgZPGd88vaAVseHAAEwKaqZKik301.png

瀏覽器輸入地址:http://主機 IP:1020

wKgZO2d88vaAZrvMAACEbPiMfmU637.png

查看密碼的方式有兩種,任選其一即可

#容器內[root@flexusx-251fjenkins]# cat /jenkins/data/secrets/initialAdminPassworddd426feefcb64fa5a45a6dd743f28787[root@flexusx-251fjenkins]# docker exec -itjenkins /bin/bashjenkins@8e2fba3b21aa:/$cat /var/jenkins_home/secrets/initialAdminPassworddd426feefcb64fa5a45a6dd743f28787jenkins@8e2fba3b21aa:/$exitexit#宿主機[root@flexusx-251fjenkins]# cat /jenkins/data/secrets/initialAdminPassworddd426feefcb64fa5a45a6dd743f28787

輸入密碼進行登錄,進入插件下載頁面

wKgZPGd88veAZk6nAACn5qA9eug332.png

點擊選擇插件來安裝,選擇需要安裝的插件(可以再搜索框進行搜索)

搜索 GIT,勾選 Git Parameter

點擊安裝

wKgZO2d88veAJCBpAAEUUEkDFiU434.png

正在安裝中(等待一小會時間)

wKgZPGd88veANhQsAACy6piSWcs658.png

下載完畢,設置信息,點擊保存并完成,進入首頁

wKgZO2d88viATIZdAAB5ak-IlUM087.png

wKgZPGd88viATXV2AACGAhHRmA0156.png

wKgZO2d88viAF9ppAABcVoi8Smw240.png

安裝成功

wKgZO2d88vmAPoqIAAC0EzQQpAA381.png

Jenkins 入門配置

構建任務

準備好 gitee 倉庫中的項目,并且通過 Jenkins 配置項目的實現當前項目的 DevOps 基本流程

?構建 Maven 工程發布到 gitee 中(gitee,github 都可以)

?gitee 官網:https://gitee.com/dashboard/projects

查看 Gitee 中的項目

wKgZPGd88vmAJf7JAAE-aANXiDQ759.png

Jenkins 點擊左側導航欄新建任務

wKgZO2d88vqAZgKPAACtxkK43Ws437.png

選擇自由風格構建任務

wKgZPGd88vqAX-3DAAD7Rr-TxyE803.png

配置源碼拉取地址

Jenkins 需要將 Git 上存放的源碼存儲到 Jenkins 服務所在磁盤的本地

配置任務源碼拉取地址

wKgZO2d88vqAfKHfAADDZnF3Nus718.png

Jenkins 立即構建

wKgZPGd88vqAAHq_AACBS-q3ohc921.png

查看構建工程的日志

wKgZO2d88vuAN31VAAFViUura9Q942.png

可以看到源碼已經拉取帶 Jenkins 本地,可以根據第三行日志信息,查看 Jenkins 本地拉取到的源碼。

查看 Jenkins 容器中/var/jenkins_home/workspace/test01 的源碼

[root@flexusx-251fjenkins]# docker exec -itjenkins /bin/bashjenkins@8e2fba3b21aa:/$ls /var/jenkins_home/workspace/test01README.en.mdREADME.mdjenkins@8e2fba3b21aa:/$exitexit

配置 maven 構建代碼

Jenkins 配置 JDK&Maven 并保存

wKgZPGd88vuAd1L2AAF1REYZuzU760.png

wKgZO2d88vuAAsEgAABPQhvmalU032.png

wKgZO2d88v2AcvCaAABDfp46Q1A152.png

配置 Jenkins 任務構建代碼

?前提是你確實想要執行 Maven 的 package生命周期階段。package階段會編譯項目代碼,運行測試(如果配置了的話),并打包應用程序(如 JAR 或 WAR 文件)。

wKgZPGd88v2AAvACAACY367MX0s961.png

wKgZO2d88v6AQ7vmAACzTPsJLw0743.png

立即構建測試,查看 target 下的 jar 包(隨便找了個項目進行測試)

?https://gitee.com/zi_yinhai/day06_git_test.git

wKgZPGd88v6APD-fAAFReHpNz0s938.png

[root@flexusx-251f~]# ls /jenkins/data/workspace/test01/target/classesmaven-archiver newprojectday_06-1.0-SNAPSHOT.jargenerated-sourcesmaven-status#通過阿里云下載的鏡像會存放在這[root@flexusx-251f~]# ls /usr/local/maven/apache-maven-3.9.9/repository/antlrclassworlds commons-fileupload eu mysqlaopalliancecom commons-io javax netbackport-util-concurrentcommons-cli commons-logging junit orgchcommons-codec dom4j log4j

至此我們已經成功搭建完成持續集成工具

體驗和感受

在快節奏的軟件開發與運維領域,自動化部署已成為提升效率、減少人為錯誤的關鍵。華為云 Flexusx 服務器,憑借其卓越的性能、靈活的擴展性和穩定的云環境,為企業用戶提供了理想的自動化部署平臺。結合 Docker 容器化技術與 Jenkins 持續集成/持續部署(CI/CD)工具,Flexus X 實例更是如虎添翼,為企業開啟了自動化部署的新紀元。

Docker 的輕量級與可移植性,使得應用環境能夠輕松打包、部署與遷移,而 Jenkins 則以其強大的自動化流程管理能力,將代碼提交、構建、測試、部署等環節無縫銜接。在 Flexusx 服務器上部署 Docker 與 Jenkins,企業可以構建一套高效的自動化部署流水線,實現從代碼提交到線上運行的快速迭代。

值此 828 華為云企業上云節之際,一起體驗 Flexusx 服務器上的 Docker 與 Jenkins 自動化部署解決方案。無論您是初創公司還是大型企業,都能在這一平臺上找到適合自己的自動化部署策略。讓 Flexusx 成為您數字化轉型的加速器,Docker 與 Jenkins 則為您的軟件交付效率插上翅膀。

選擇華為云 Flexusx,攜手 Docker 與 Jenkins,共同開啟自動化部署的新篇章。點擊下方鏈接,立即行動,在 828 上云節的特惠期間,讓我們攜手并進,共創數字化未來!

產品鏈接華為云Flexus云服務器X實例直播建站服務器-華為云

wKgZO2d88v6ALfIEAAMdMY7jqCs031.png

審核編輯 黃宇

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • Docker
    +關注

    關注

    0

    文章

    492

    瀏覽量

    11916
  • 華為云
    +關注

    關注

    3

    文章

    2682

    瀏覽量

    17540
  • jenkins
    +關注

    關注

    0

    文章

    31

    瀏覽量

    5163
收藏 人收藏

    評論

    相關推薦

    華為云 X 實例部署 Docker 應用的性能評測優化與實踐指南

    ? 4.2 網絡延遲與帶寬消耗 ? 4.3 部署時間統計 ? 5. 優化策略 ? 5.1 硬件資源調整 ? 5.2 自動化腳本優化 ? 5.3 緩存與鏡像加速 ? 6 總結 ? 1. 前言 隨著云計算的快速發展,越來越多的企業和開發者開始
    的頭像 發表于 01-23 18:03 ?54次閱讀
    華為云 X 實例<b class='flag-5'>部署</b> <b class='flag-5'>Docker</b> 應用的性能評測優化與實踐指南

    Jenkins 與 SonarQube 集成部署,自動化代碼質量監控

    的性能表現,為 Jenkins 與 SonarQube 的集成部署提供強大支撐。在 Flexus X 的助力下,自動化代碼掃描與質量問題即時反饋成為可能,顯著提升團隊開發效率與軟件質量。立即體驗華為云
    的頭像 發表于 01-07 17:24 ?261次閱讀
    <b class='flag-5'>Jenkins</b> 與 SonarQube 集成<b class='flag-5'>部署</b>,<b class='flag-5'>自動化</b>代碼質量監控

    云服務器Flexus X實例,Docker集成搭建Jenkins CI/CD平臺

    Jenkins 是一個開源的自動化服務器,用于持續集成(CI)和持續交付(CD)軟件項目。它允許開發人員在軟件開發過程中自動化各種任務,如構建、測試和部署,從而提高開發效率和軟件質量。
    的頭像 發表于 12-29 15:43 ?149次閱讀
    云服務器Flexus X實例,<b class='flag-5'>Docker</b>集成搭建<b class='flag-5'>Jenkins</b> CI/CD平臺

    Flexus X 實例 Docker+Jenkins+gitee 實現 CICD 自動化部署 - 解放你的雙手~

    前言 828 B2B 企業節特惠來襲,Flexus X 實例引領自動化部署新紀元!Docker 攜手 Jenkins 與 Gitee,共創 CICD 無限可能!在快速迭代的數字時代,我
    的頭像 發表于 12-26 18:19 ?200次閱讀
    Flexus X 實例 <b class='flag-5'>Docker+Jenkins</b>+gitee <b class='flag-5'>實現</b> CICD <b class='flag-5'>自動化</b><b class='flag-5'>部署</b> - 解放你的雙手~

    k8s和docker區別對比,哪個更強?

    部署、擴展、管理和應用生命周期管理能力,可實現高可用性和自動伸縮,兩者常結合使用以優化容器和應用管理。UU云小編將對k8s和docker
    的頭像 發表于 12-11 13:55 ?161次閱讀

    LMX2595EVM如何實現自動化控制?

    我需要用LMX2595EVM實現自動化控制,請問那里有LMX2595EVM相關的sdk接口文檔或者Demo?
    發表于 11-13 06:09

    ARM平臺實現Docker容器技術

    自動部署)。而且使用dockerfile使鏡像構建透明,不僅僅開發團隊可理解應用運行環境,也方便運維團隊理解應用運行所需條件,幫助更好的生產環境中部署該鏡像。 更輕松的遷移:由于
    發表于 07-25 14:36

    ARM平臺實現Docker容器技術

    及依賴包到一個可移植的鏡像中,然后發布到任何流行的Linux或Windows機器上,亦可實現虛擬。容器是完全使用沙箱機制,相互之間不會有任何接口。使用Docker,可像管理應用程序一樣管理基礎結構
    發表于 07-17 11:05

    機械自動化和電氣自動化區別是什么

    機械自動化和電氣自動化是現代工業生產中兩個重要的領域,它們在許多方面有著密切的聯系,但也存在一些明顯的區別。 一、基本概念 機械自動化 機械自動化是指利用機械設備、傳感器、控制系統等技
    的頭像 發表于 07-01 09:33 ?4357次閱讀

    機械自動化自動化的一種嗎

    引言 自動化技術是指利用控制裝置對生產過程進行控制,以實現生產過程的自動化。機械自動化自動化技術的一種,它主要涉及到使用機械設備和控制系統
    的頭像 發表于 07-01 09:32 ?1806次閱讀

    如何實現PLC的自動化控制邏輯

    在工業自動化領域,PLC(Programmable Logic Controller,可編程邏輯控制器)扮演著至關重要的角色。PLC通過編程實現自動化控制邏輯,使設備能夠按照預定的程序進行工作,極大
    的頭像 發表于 06-15 16:44 ?1276次閱讀

    機械制造與自動化自動化類嗎

    機械制造與自動化自動化領域的一個重要分支,它涉及到機械設計、制造、檢測、控制等多個方面,是現代制造業的核心組成部分。 機械制造與自動化是指利用計算機、機器人、傳感器等自動化設備和技術
    的頭像 發表于 06-11 11:18 ?1621次閱讀

    工業自動化自動化區別是什么

    工業自動化自動化是兩個密切相關但又有所區別的概念。在這篇文章中,我們將詳細探討它們之間的區別,以及它們在現代工業生產中的應用。 一、自動化的定義 自動化是指通過使用機器、計算機和其他
    的頭像 發表于 06-11 11:13 ?1857次閱讀

    工廠自動化控制的典型實現方式

    工廠自動化控制是現代制造業的關鍵組成部分,它通過應用先進的信息技術、自動化技術和控制技術,實現生產過程的自動化、智能和信息
    的頭像 發表于 06-06 15:51 ?1146次閱讀

    ARM平臺實現Docker容器技術

    ,亦可實現虛擬。容器是完全使用沙箱機制,相互之間不會有任何接口。使用Docker,可像管理應用程序一樣管理基礎結構。通過利用Docker的快速發布、測試和
    的頭像 發表于 03-07 13:48 ?835次閱讀
    ARM平臺<b class='flag-5'>實現</b><b class='flag-5'>Docker</b>容器技術
    主站蜘蛛池模板: 7777在线| 天天插夜夜操| 嫩草影院网站入口| 久久久免费网站| 国产精品久久精品牛牛影视| 丁香六月婷婷激情| 小泽玛利亚厕所大喷水| 天天视频官网天天视频在线| 色综合天天综合网亚洲影院| 国产免费福利网站| xxxx69日本hd| 资源在线www天堂| 特黄特色的大片观看免费视频| 日韩免费一区| 黄色一级片播放| 亚洲精品久久久久午夜福| 免费网站在线视频美女被| 午夜色a大片在线观看免费| 美女用手扒开尿口给男生桶爽| 性生生活三级视频在线观看| 日本三级三级三级免费看| 毛片免费看网站| 亚洲成片在线观看12345ba| 国产中文99视频在线观看| 91大神精品长腿在线观看网站| 樱桃磁力bt天堂| 欧美电影一区二区三区| 中国又粗又大又爽的毛片| 黄色成人在线| 性免费网站| 色视网站| www在线小视频免费| 免费公开在线视频| 性黄视频| 日本在线黄色| www.看片| 国产亚洲精品aa在线看| 美欧毛片| 欧美一级特黄视频| 一级特黄aaa免费| www.精品视频|