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

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

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

3天內不再提示

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

jf_94205927 ? 來源:jf_94205927 ? 作者:jf_94205927 ? 2024-12-26 18:19 ? 次閱讀

前言

828 B2B 企業節特惠來襲,Flexus X 實例引領自動化部署新紀元!Docker 攜手 Jenkins 與 Gitee,共創 CICD 無限可能!在快速迭代的數字時代,我們自豪地推出這一前沿解決方案,為您的 C# Web API 項目注入前所未有的敏捷動力。通過集成 Docker 容器化技術、Jenkins 持續集成/持續部署(CICD)平臺,以及 Gitee 高效版本控制系統,我們旨在打造一個無縫銜接的開發到部署流水線,讓您的項目在數字化轉型的浪潮中乘風破浪,遙遙領先!

一個高度自動化的環境,每一次代碼提交都能觸發自動化的構建、測試與部署流程。在這個流程中,Docker 確保了應用運行環境的標準化與一致性,無論本地開發還是云端部署,都能享受到“所見即所得”的便捷;Jenkins 作為強大的 CICD 引擎,自動化地管理著整個流程,從代碼拉取、編譯構建到部署發布,每一步都精準無誤;而 Gitee,作為您的代碼倉庫,不僅提供了安全的版本控制服務,還通過集成 Jenkins 觸發器,實現了代碼變更與部署流程的即時聯動。

本實踐指南將帶您深入探索 Docker+Jenkins+Gitee 的完美結合,一步步構建起一套高效、可靠的 CICD 自動化部署體系。您將學會如何配置 Jenkins 以監聽 Gitee 的 Webhooks,實現代碼提交的即時響應;如何利用 Docker 容器快速打包并運行您的 C# Web API 應用;以及如何通過 Jenkins 腳本化地管理整個部署流程,包括環境配置、依賴安裝、測試執行與部署發布等關鍵環節。

實驗步驟

環境準備

本實驗沿用了上一個實驗,環境是 Flexus X 實例自定義模式,使用了 4vCPUs | 12GiB,鏡像是最高版本的 ubuntu,在上一個實驗中使用 xshell 連接了服務器,隨后在服務器中安裝了 git、dokcer。這里就不重復介紹了,可自行操作或參考上一個實驗!

828華為云征文|Flexus X實例C#/.Net Core 結合(git代碼管理、docker自定義鏡像)快速發布部署-讓你的項目飛起來~-CSDN博客

安裝 Portainer

介紹:

Portainer 是一款開源的輕量級管理 UI,旨在簡化 Docker 和 Kubernetes 環境的管理。Portainer 提供了狀態顯示面板、應用模板快速部署、容器鏡像網絡數據卷的基本操作(包括上傳下載鏡像,創建容器等操作)、事件日志顯示、容器控制臺操作、Swarm 集群和服務的集中管理和操作等功能。這些功能基本能滿足中小型單位對容器管理的全部需求。

拉取鏡像

使用 Docker 命令拉取 Portainer 的 Docker 鏡像:

docker pull portainer/portainer-ce

wKgZO2dtLVmAbhWoAAAeyH5wNJ4192.png

拉取鏡像報錯了!!!在嘗試從 Docker 鏡像倉庫(如 Docker Hub)獲取鏡像時遇到了問題。我們可能需要配置 Docker 以使用國內的鏡像源,因為直接訪問 Docker Hub 有時可能會很慢或不穩定

更換鏡像源

Linux 系統中,Docker 的配置文件通常位于/etc/docker/daemon.json。如果該文件不存在,則需要手動創建。

wKgZPGdtLWCATPgoAAAzNDtz5xg885.png

從查詢結果來看,我目前并沒有這個文件,下面我自己創建一個!

// 創建文件 cd etc/dockertouch daemon.json //編輯文件 vim daemon.json// 在文件中輸入以下內容 注意:剛打開文件要輸入 i 才可以進入編輯模式{"registry-mirrors": ["https://gallery.ecr.aws/","https://gitverse.ru/docs/artifactory/gitverse-registry/","https://docker.lmirror.top","https://atomhub.openatom.cn/"]}// 退出編輯模式,從插入模式回到普通模式,只需要按下 Esc 鍵// 退出 Vim// 修改完成后我們需要完全退出 Vim 編輯器,可以使用以下命令::q //如果沒有做任何修改,則退出 Vim。:q! //強制退出 Vim,不保存任何修改。:wq 或 :x //保存修改并退出 Vim。:ZZ //和 :wq 一樣,保存修改并退出 Vim,但更簡短。

接下來我們重啟 docker 服務

[root@localhost]# systemctl daemon-reload[root@localhost]# systemctl restart docker

再次拉取 Portainer 的 Docker 鏡像,此時已經可以正常拉取了!

wKgZO2dtLYiAXz2jAAFffsHZfyU777.png

啟動容器

執行下面命令運行 Portainer 容器

docker run -d -p 9000:9000 --name portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v /var/lib/docker/volumes:/var/lib/docker/volumes portainer/portainer-ce

運行容器后,去華為服務器控制臺開放我們的 9000 端口

wKgZPGdtLYmACyLHAAF3cgWv5yA293.png

使用我們的服務器 IP 地址+端口號,訪問可視化界面,第一次訪問需要配置賬號密碼

wKgZO2dtLYmAMOJFAADfDoQBbxE557.png

點擊 LiveConnect 打開本地 docker,可以查看宿主機配置信息、查看容器、鏡像、網絡、卷等相關信息。

wKgZPGdtLYmAfnUyAAKluwJkHLs294.png

安裝 jenkins

介紹:

Jenkins 是一個開源的持續集成和持續部署(CI/CD)工具,它支持各種編程語言和平臺,廣泛應用于軟件開發和交付過程中。Jenkins 可以監視源代碼倉庫(如 Git、SVN 等)的變化,并在代碼提交后自動執行構建過程,包括編譯、測試和打包等步驟。

拉取鏡像

使用 docker pull jenkins/jenkins:lts 命令拉取 Jenkins 的長期支持(LTS)版本鏡像

運行容器

# 在宿主機上創建一個目錄,用于存放 Jenkins 的數據 mkdir -p /var/jenkins_home# 為了確保 Jenkins 容器能夠正常訪問該目錄,需要設置適當的權限 chmod 777 /var/jenkins_home# 啟動容器 docker run -d --name myjenkins -p 8080:8080 -p 50000:50000 -v /var/jenkins_home:/var/jenkins_home -v /etc/localtime:/etc/localtime -v /usr/bin/docker:/usr/bin/docker -v /var/run/docker.sock:/var/run/docker.sock --restart=always jenkins/jenkins:lts# 參數說明:-d:以后臺模式運行容器。--name myjenkins:為容器指定一個名稱。-p 8080:8080:將容器的 8080 端口映射到宿主機的 8080 端口,用于訪問 Jenkins 的 Web 界面。-p 50000:50000:將容器的 50000 端口映射到宿主機的 50000 端口,用于 Jenkins 的節點和主控節點之間的通信。-v /var/jenkins_home:/var/jenkins_home:將宿主機的/var/jenkins_home 目錄掛載到容器的/var/jenkins_home 目錄,用于持久化 Jenkins 的數據。-v /etc/localtime:/etc/localtime:將宿主機的時區文件掛載到容器內,確保容器內的時間與宿主機一致。-v /usr/bin/docker:/usr/bin/docker 和 -v /var/run/docker.sock:/var/run/docker.sock:允許容器內的 Jenkins 使用宿主機的 Docker 命令和 Docker 引擎。--restart=always:設置容器在退出時總是自動重啟。

執行完后使用 docker ps 命令查看正在運行的容器列表,確認 Jenkins 容器已經啟動。

老樣子,開放 8080 端口,ip+端口訪問頁面!

wKgZO2dtLYmASTSnAAFOzERwMB4249.png

獲取管理員密碼

第一次訪問需要輸入管理員密碼,我們有兩種方法可以獲取到密碼!

1.查看日志

使用 docker logs myjenkins 命令查看 Jenkins 容器的輸出日志,找到包含管理員密碼的行。

2.直接查看文件

也可以在宿主機的/var/jenkins_home/secrets/initialAdminPassword 文件中找到管理員密碼。

wKgZPGdtLYqAMSj7AAEaA3Uwswk617.png

這里我直接打開剛剛安裝的 portainer 界面,找到容器,點擊日志圖標!

wKgZO2dtLYqAO443AAFp2dgx6Rc778.png

如下所示 Please use the following password to proceed to installation:的下面一行就是密碼!

wKgZPGdtLYqAF880AAUhmRBNROg185.png

選擇安裝建議安裝的插件!

wKgZO2dtLYuAMe-UAAHBNk5DLKM584.png

安裝插件需要等待一會~~~

wKgZPGdtLYuAYXqtAAFl9ANLcJg812.png

安裝完成后系統提示我們創建一個新用戶,這里我選擇使用 admin 用戶繼續!

wKgZO2dtLYuAWuu1AAEiSBMi8bM575.png

在設置中安裝 Gitee 插件

wKgZPGdtLYuAL3xjAAER2bOrFFs770.png

點擊 New Item 創建一個新任務!

wKgZO2dtLYyAXgkfAAEDIiXqih4742.png

新建流水線項目

Portainer 配置

然后選擇第一種任務模式,自由風格軟件項目

wKgZPGdtLYyAVoO7AAI6-of7Sqs601.png

在源代碼管理 Source Code Management 中選擇 Git,打開 gitee 找到自己需要部署的倉庫,復制地址。

wKgZO2dtLY2ADmACAAL8iL0mVRg405.png

粘貼到 Repository URL 中,第一次創建 Credentials 是空的,我們點擊下面的 add 新建一個,

wKgZPGdtLY-AH3hNAADzEDsfCMg020.png

新建 Credentials 時我們只需要填寫 Username 和 Password,其他空著就好!

wKgZO2dtLY-ADIvNAADPPj4wcOo631.png

username 就是剛剛打開 gitee 項目時如下圖框框位置,然后 password 官方是建議使用私人令牌的,直接點擊藍色字體參考步驟生成私人令牌復制過來就好了!

wKgZPGdtLY-AC2QiAAE6Ni_rrkM781.png

Branches to build 選擇你當前倉庫要構建的分支,我這里默認是 master 分支

wKgZO2dtLZCAJjQKAADOWPsD9rc069.png

在這里可以選擇遠程觸發構建,代碼變更構建,定時構建等等,我這里選擇的是 Build when a change is pushed to Gitee,當 gitee 上的代碼發送推送時觸發構建!

wKgZPGdtLZCAOKwjAADlugnwWRg336.png

勾選之后,滑到下面,點擊 Generate,會生成一條密碼。注意(這里的上圖的 Webhook 和下面生成的密碼都要記錄下來,稍后我們要配置到 gitee 上)

wKgZO2dtLZCAcFpnAAA8fHFx_LU336.png

Build Environment 中我們勾選第一個,每次構建前刪除之前的工作區,以節省內存。

wKgZPGdtLZCAHIzPAAAkZLs0K3Y608.png

在 Build Steps 中我們選擇新增一個 Execute shell,編寫命令來管理容器和鏡像。

wKgZO2dtLZGAZg5qAACcC685Xno539.png

輸入如下代碼!

wKgZPGdtLZGAd2JlAAFJHVV_5L0887.png

下面是對代碼的解釋,可以根據自己的項目差異進行調整!

# 將當前工作目錄更改為 Jenkins 的一個特定工作空間 cd /var/lib/jenkins/workspace/auth_server# 強制刪除所有已停止的 Docker 容器 docker container prune -f# 列出所有 Docker 容器(包括未運行的),然后通過管道 (|) 將輸出傳遞給 grep "auth"docker container ls -a | grep "auth" if [ $? -eq 0 ];then # 如果存在名為 auth 的容器,并且該容器正在運行,這條命令將停止該容器。docker container stop auth # 這條命令刪除名為 auth 的容器docker container rm auth fi# 強制刪除所有未使用的 Docker 鏡像 docker image prune -f# 構建一個新的 Docker 鏡像 docker build -t auth .# 啟動容器 docker run -d -p 5000:5000 --restart=always --name auth auth

gitee 配置 WebHooks

打開代碼倉庫,在管理中找到 WebHooks,點擊添加 WebHook

wKgZO2dtLZGAE7NHAAEeQC8ljlw728.png

將上面 Jenkins 項目設置中的 Gitee webhook URL 和 Gitee Webhook 密碼復制下來,填進去!

wKgZPGdtLZKABXm-AAIpI3G6JMo787.png

注意:因為 Gitee 中的 bug,就算配置成功了,測試 WebHook 也會出現 404 錯誤,不要著急,稍后我們去修改一下代碼提交一次!

構建

修改完配置之后,我們先手動進行構建一次,測試一下,點擊項目中的 build Now。

wKgZO2dtLZKAEWc_AAIO6c4lWME629.png

在下面會出現每一次的構建記錄,點擊最新的一次,再點擊 Console Output,可以查看我們的構建日志。由下圖可見,我此次構建失敗了!!!

wKgZPGdtLZKAe0PGAAK-zZEjECI142.png

從報錯信息看出,這個錯誤信息表示在執行 Jenkins 構建任務時,嘗試連接到 Docker 守護進程的 Unix 套接字(/var/run/docker.sock)時遇到了權限問題。因此,構建任務失敗。

要解決這個問題,需要確保 Jenkins 用戶具有訪問 Docker 守護進程的權限。

wKgZO2dtLZOAcoNoAABxF-7YpIM877.png

打開終端并輸入以下命令以創建名為'jenkins' 的用戶

sudo adduser jenkins

將'jenkins' 用戶添加到 'docker' 組

sudo usermod -a -G docker jenkins

在編輯完成后,需要重新加載 systemd 配置以使更改生效。運行以下命令:

sudo systemctl daemon-reload

重啟 Docker 服務以應用新的配置:

sudo systemctl restart docker

如果上述方法不起作用,可以嘗試更改/var/run/docker.sock 的權限,使其對所有用戶可讀寫。執行以下命令:

sudo chmod 666 /var/run/docker.sock

請注意,這種方法可能會帶來安全風險,因為它允許所有用戶訪問 Docker 守護進程。在生產環境中,建議僅將特定用戶添加到 docker 用戶組。

構建成功!

wKgZPGdtLZOAB2giAAIbJjykbbI722.png

打開 Portainer 看一下,雖然容器與宿主機映射的是 5000 端口,但其實因為我們沒有給.net 項目配置端口,實際上默認還是 8080,這樣會與 jenkins 的默認端口沖突,因此我們修改一下代碼!

wKgZO2dtLZOARt6EAACoONyhtDU868.png

wKgZPGdtLZOAYU2PAAAO97MQU2I445.png

修改代碼,自動部署

在 appsetting 中加入配置,提交代碼!

"Kestrel": {"EndPoints": {"Http": {"Url": "http://+:5000"}}}

因為我們之前已經配置好了,在代碼提交之后,會自動發送一個請求到我們的 jenkins

wKgZPGdtLYCAPAF-AAC-2ZzAUYM478.png

然后 jenkins 就會自動開啟構建任務了

wKgZO2dtLXmASx1RAABDIZ_m3HQ793.png

老樣子,開放 5000 端口!

wKgZPGdtLXGAOgkoAAB4kbVfQOU893.png

訪問一下我們的接口,成功!

wKgZPGdtLWuAA2MzAAAy_x6eUXo057.png



審核編輯 黃宇

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

    關注

    3

    文章

    3380

    瀏覽量

    42602
  • 華為云
    +關注

    關注

    3

    文章

    2654

    瀏覽量

    17499
收藏 人收藏

    評論

    相關推薦

    Flexus 云服務器 X 實例安裝 Docker 管理工具 Portainer

    。在此強大平臺上部署如 Portainer CE 這樣的容器管理工具,不僅能夠極大地簡化 Docker 環境的管理流程,還能進一步提升運維效率與自動化水平,讓用戶的云端體驗更加流暢自如。 一、
    的頭像 發表于 01-13 18:46 ?63次閱讀
    <b class='flag-5'>Flexus</b> 云服務器 <b class='flag-5'>X</b> <b class='flag-5'>實例</b>安裝 <b class='flag-5'>Docker</b> 管理工具 Portainer

    云服務器 Flexus X 實例Docker 集成搭建 YesPlayMusic 網易云音樂播放器

    配置鏡像加速 1、購買華為云 Flexus X 實例 Flexus云服務器X實例-華為云 (hu
    的頭像 發表于 01-13 18:17 ?107次閱讀
    云服務器 <b class='flag-5'>Flexus</b> <b class='flag-5'>X</b> <b class='flag-5'>實例</b>,<b class='flag-5'>Docker</b> 集成搭建 YesPlayMusic 網易云音樂播放器

    云服務器 Flexus X 實例Docker 集成搭建 Grafana 開源數據可視平臺

    的用戶界面,用戶可以輕松創建和自定義動態儀表板,以實時展示關鍵指標和數據趨勢 華為云端口放行 ??服務器放行對應端口 9955 Docker 安裝并配置鏡像加速 1、購買華為云 Flexus X
    的頭像 發表于 01-13 15:50 ?63次閱讀
    云服務器 <b class='flag-5'>Flexus</b> <b class='flag-5'>X</b> <b class='flag-5'>實例</b>,<b class='flag-5'>Docker</b> 集成搭建 Grafana 開源數據可視<b class='flag-5'>化</b>平臺

    云服務器 Flexus X 實例Docker 集成搭建 NGINX

    Docker 集成搭建 NGINX 1、購買華為云 Flexus X 實例 Flexus云服務器X
    的頭像 發表于 01-13 11:09 ?56次閱讀
    云服務器 <b class='flag-5'>Flexus</b> <b class='flag-5'>X</b> <b class='flag-5'>實例</b>,<b class='flag-5'>Docker</b> 集成搭建 NGINX

    華為云 Flexus 云服務器 X 實例之 openEuler 系統部署 Docker Compose 管理工具 Dockge

    docker-compose.yaml 部署文件時,Dockge 以其精美的設計和易用性脫穎而出,成為不可或缺的管理工具。利用華為云 Flexus 云服務器 X
    的頭像 發表于 01-08 11:41 ?140次閱讀
    華為云 <b class='flag-5'>Flexus</b> 云服務器 <b class='flag-5'>X</b> <b class='flag-5'>實例</b>之 openEuler 系統<b class='flag-5'>部署</b> <b class='flag-5'>Docker</b> Compose 管理工具 Dockge

    基于 DockerJenkins 實現自動化部署

    前言 重塑自動化部署新高度,Docker 攜手 Jenkins,在華為云 Flexus X 云服
    的頭像 發表于 01-07 17:25 ?193次閱讀
    基于 <b class='flag-5'>Docker</b> 與 <b class='flag-5'>Jenkins</b> <b class='flag-5'>實現</b><b class='flag-5'>自動化</b><b class='flag-5'>部署</b>

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

    的性能表現,為 Jenkins 與 SonarQube 的集成部署提供強大支撐。在 Flexus X 的助力下,自動化代碼掃描與質量問題即時
    的頭像 發表于 01-07 17:24 ?230次閱讀
    <b class='flag-5'>Jenkins</b> 與 SonarQube 集成<b class='flag-5'>部署</b>,<b class='flag-5'>自動化</b>代碼質量監控

    云服務器 Flexus X 實例部署 Gitea,擁有自己的 Git 倉庫,管理本地代碼

    本篇文章通過部署 Gitea,實現本地 Git 倉庫,真實體驗了“云服務器 Flexus X 實例”,深感其卓越性能與靈活性。這款
    的頭像 發表于 01-07 16:59 ?98次閱讀
    云服務器 <b class='flag-5'>Flexus</b> <b class='flag-5'>X</b> <b class='flag-5'>實例</b>:<b class='flag-5'>部署</b> Gitea,擁有自己的 Git 倉庫,管理本地代碼

    華為云 Flexus?X 實例 docker 部署 ERPnext 構建屬于自己的企業資源規劃系統

    ·?華為云最近正在舉辦 828?B2B 企業節,Flexus?X 實例的促銷力度非常大,特別適合那些對算力性能有高要求的小伙伴。如果有自建 MySQL、Redis、Nginx 等服務
    的頭像 發表于 01-03 09:24 ?144次閱讀
    華為云 <b class='flag-5'>Flexus</b>?<b class='flag-5'>X</b> <b class='flag-5'>實例</b> <b class='flag-5'>docker</b> <b class='flag-5'>部署</b> ERPnext 構建屬于自己的企業資源規劃系統

    在華為云 FlexusX 實例實現 Docker 容器的實時監控與可視化分析

    前言 華為云 Flexus X,以頂尖算力與智能調度,引領 Docker 容器管理新風尚。828 企業上云節之際,Flexus X 攜手前沿
    的頭像 發表于 01-02 13:42 ?88次閱讀
    在華為云 FlexusX <b class='flag-5'>實例</b>上<b class='flag-5'>實現</b> <b class='flag-5'>Docker</b> 容器的實時監控與可視化分析

    華為云 Flexus X 實例 docker 部署最新 gitlab 社區版,搭建自己的私人代碼倉庫

    ·?華為云最近正在舉辦 828 B2B 企業節,Flexus X 實例的促銷力度非常大,特別適合那些對算力性能有高要求的小伙伴。如果有自建 MySQL、Redis、Nginx 等服務
    的頭像 發表于 01-02 12:01 ?81次閱讀
    華為云 <b class='flag-5'>Flexus</b> <b class='flag-5'>X</b> <b class='flag-5'>實例</b> <b class='flag-5'>docker</b> <b class='flag-5'>部署</b>最新 gitlab 社區版,搭建自己的私人代碼倉庫

    華為云 Flexus X 實例 docker 部署 jdk21 最新版 jenkins 搭建自己的 devops 服務器

    ·?華為云最近正在舉辦 828 B2B 企業節,Flexus X 實例的促銷力度非常大,特別適合那些對算力性能有高要求的小伙伴。如果有自建 MySQL、Redis、Nginx 等服務
    的頭像 發表于 01-02 11:58 ?68次閱讀
    華為云 <b class='flag-5'>Flexus</b> <b class='flag-5'>X</b> <b class='flag-5'>實例</b> <b class='flag-5'>docker</b> <b class='flag-5'>部署</b> jdk21 最新版 <b class='flag-5'>jenkins</b> 搭建自己的 devops 服務器

    Flexus 云服務器 X 實例:在 Docker 環境下搭建 java 開發環境

    和開發者精心打造。它以卓越的柔性算力,為我們在 Docker 環境下搭建 java 開發環境提供有力支撐。 一、Flexus 云服務器 X 實例介紹 1.1
    的頭像 發表于 12-30 09:07 ?212次閱讀
    <b class='flag-5'>Flexus</b> 云服務器 <b class='flag-5'>X</b> <b class='flag-5'>實例</b>:在 <b class='flag-5'>Docker</b> 環境下搭建 java 開發環境

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

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

    Flexus X 實例 C#/.Net Core 結合(git 代碼管理、docker 自定義鏡像)快速發布部署 - 讓的項目飛起來~

    前言 ???云端部署新體驗,C# Web API 遇上 Git Docker,828 B2B 企業節特惠來襲!Flexus X 實例,為您的
    的頭像 發表于 12-25 21:15 ?179次閱讀
    <b class='flag-5'>Flexus</b> <b class='flag-5'>X</b> <b class='flag-5'>實例</b> C#/.Net Core 結合(git 代碼管理、<b class='flag-5'>docker</b> 自定義鏡像)快速發布<b class='flag-5'>部署</b> - 讓<b class='flag-5'>你</b>的項目飛起來~
    主站蜘蛛池模板: 日本久久久| 美女扒开尿口给男人桶爽视频| 成人aaa| 成人国产一区二区| 天天射日| 最新版天堂资源官网| 国产一级特黄aaaa大片野外| 日本黄色高清视频| 速度与激情一| 2019天天爱天天做| 美女黄18以下禁止观看的网站| 新版天堂中文在线8官网| 大色视频| 国产在线视频不卡| 久精品在线观看| 毛片综合| 美女很黄很黄是免费的·无遮挡网站| 看免费一级片| 蕾丝视频成人★在线观看| 国产一线在线观看| 午夜免费一级片| 天天看天天爽| 狠狠夜夜| 91久久国产青草亚洲| 超人碰碰碰人人成碰人| 操久久久| 一级片a级片| 亚洲精品第一| 日本一区二区三区不卡在线视频| 亚洲高清成人| 亚洲黄色影片| 特黄一级真人毛片| 噜噜影院无毒不卡| 午夜一级毛片看看| 操爽视频| 在线观看三级视频| 亚洲电影在线看| 免费激情网址| 国产中出视频| 天堂资源8中文最新版在线| 狼人射综合|