色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

3天內不再提示

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

jf_21561199 ? 來源:jf_21561199 ? 作者:jf_21561199 ? 2024-12-25 21:15 ? 次閱讀

前言

???云端部署新體驗,C# Web API 遇上 Git Docker,828 B2B 企業節特惠來襲!Flexus X 實例,為您的 C#應用提供強大支撐,結合 Git 版本控制與 Docker 容器化部署,實現代碼高效管理與無縫遷移。即刻行動,讓您的 Web 服務更加穩定、高效,領跑數字化轉型之路!

???本實驗深入演示了如何在 Ubuntu 環境中,利用 Git 進行版本控制管理代碼,并通過 Docker 技術自定義構建鏡像,從而實現項目從代碼到應用的快速構建、打包與部署流程。這一流程不僅提升了開發效率,還確保了環境的一致性與可重復性。

環境準備

購買服務器配置

本次實驗使用的是 Flexus 云服務器 X 實例 服務器。

wKgZPGdsBXmALG2KAACgmvlB9Hk561.png

在性能設置中我選擇了自定義模式,使用了 4vCPUs | 12GiB,鏡像我選用的是最高版本的 ubuntu

wKgZO2dsBXqAV5RzAAECo10_NbQ658.png

打開 xshell,使用購買的服務器的公網 IP 地址,和設置的密碼,連接上我們的服務器。

wKgZPGdsBXqAS1FJAAM3QAKAdTA860.png

項目部署

項目準備(Dockerfile 文件)

我這里以 c#為例,新建一個 .net8.0 的 Web API 項目

wKgZO2dsBXqADCYuAAIcuQ2rRRQ461.png

這個新建的官網的 webApi 項目自帶一個接口 weatherforecast 接口,可以獲取到最近的天氣,因為本篇主要目的是如何使用 git+docker 在服務器上發布,因此不做太多改動。本地啟動一下,成功訪問到,我們稍后將這個程序部署到服務器上。

wKgZPGdsBXuAIdYJAAFR6UZiexs157.png

因為我們后面采用 Git 方式來發布應用,因此在 gitee 上新建倉庫,將代碼上傳上去。

在項目路徑下新建一個 Dockerfile 文件,內容如下(根據自己的解決方案名稱、構建環境,如.net 6.0、7.0 等版本,亦或是其他語言,對以下代碼就行調整,本部署方式適用于其他編程語言或其他版本的.net)

wKgZO2dsBXuAEWlDAAJsuq55yWA280.png

FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS baseUSER $APP_UIDWORKDIR /appEXPOSE 8080FROM mcr.microsoft.com/dotnet/sdk:8.0 AS buildARG BUILD_CONFIGURATION=ReleaseWORKDIR /srcCOPY ["WebApplication1/WebApplication1.csproj", "WebApplication1/"]RUN dotnet restore "WebApplication1/WebApplication1.csproj"COPY . .WORKDIR "/src/WebApplication1"RUN dotnet build "WebApplication1.csproj" -c $BUILD_CONFIGURATION -o /app/buildFROM build AS publishARG BUILD_CONFIGURATION=ReleaseRUN dotnet publish "WebApplication1.csproj" -c $BUILD_CONFIGURATION -o /app/publish /p:UseAppHost=falseFROM base AS finalWORKDIR /appCOPY --from=publish /app/publish .ENTRYPOINT ["dotnet", "WebApplication1.dll"]

這段 Dockerfile 用于構建一個 ASP.NET Core 應用程序的 Docker 鏡像

FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS base:從 Microsoft Container Registry (MCR) 拉取 ASP.NET Core 8.0 的官方運行時鏡像作為基礎鏡像,并將其標記為 base。這個鏡像包含了運行 ASP.NET Core 應用程序所需的一切,但不包含構建工具。

FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build:從 Microsoft Container Registry 拉取 ASP.NET Core 8.0 的官方 SDK 鏡像,用于構建應用程序。這個鏡像包含了構建.NET 應用程序所需的一切工具。

通過這種方式,Dockerfile 利用了 Docker 的多階段構建特性,確保了構建過程中只包含必要的工具(在構建階段使用 SDK,在最終鏡像中僅包含運行時),從而減小了最終鏡像的大小。

Git 部署并拉取代碼

安裝 Git

打開終端,然后輸入以下命令來安裝 Git

sudo apt update sudo apt install git

配置 Git 用戶信息

在安裝 Git 后,建議配置你的用戶名和電子郵件地址。這些信息將用于你的 Git 提交,并幫助你識別代碼更改的源頭。

git config --global user.name "你的名字" git config --global user.email "你的郵箱地址"

SSH 密鑰

雖然你可以通過 HTTPS URL 克隆倉庫,但使用 SSH 密鑰可以更安全地訪問你的倉庫。

檢查是否已存在 SSH 密鑰:

ls -al ~/.ssh

如果控制臺輸入結果像我一樣

wKgZPGdsBXyAPn0xAAANOB5hzzY027.png

.ssh文件夾是存在的,沒有看到 id_rsa和 id_rsa.pub文件,說明沒有包含任何 SSH 密鑰。那么你需要生成一個新的 SSH 密鑰對。

chmod 700 /root/.ssh//更改 /root/.ssh 目錄的權限,700 意味著只有目錄的所有者 ssh-keygen -t rsa -b 4096 -C "你的郵箱地址"

命令執行后,它會詢問你“Enter file in which to save the key (/root/.ssh/id_rsa):”,這是在詢問你希望將生成的私鑰保存在哪個文件中。默認情況下,它會建議你保存在/root/.ssh/id_rsa

直接按回車鍵,它會接受默認的文件名/root/.ssh/id_rsa來保存私鑰

接下來,會要求你輸入一個密碼(passphrase)來保護私鑰。這是一個可選步驟,如果你不想設置密碼,只需再次按回車鍵即可跳過此步驟

wKgZO2dsBXyAN6DeAAAsoINA_RU996.png

再次輸入 ls -al ~/.ssh,可以看到.ssh 目錄下已經生成 id_rsa.pub 等文件了。

wKgZPGdsBXyAZkboAAAP3jQzGOU277.png

輸入以下命令,公鑰內容將被輸出到終端,然后我們復制這些內容。

cat /root/.ssh/id_rsa.pub

這里以 gitee 為例,我們將公鑰添加到安全設置的 SSH 公鑰中。

wKgZO2dsBX2AFMdGAAHmuQu86wM518.png

添加完成后我們就可以在控制臺執行命令將我們的項目代碼克隆下來了。

wKgZPGdsBX6AYn2wAAJoi3aqtI0057.png

安裝 docker

Docker 在 Ubuntu 上依賴一些軟件包,需要先行安裝。

sudo apt install apt-transport-https ca-certificates curl software-properties-common gnupg lsb-release

添加 Docker GPG 密鑰

這是為了驗證從 Docker 倉庫下載的軟件包的完整性。

#官方 GPG key (可能國內訪問會存在問題)curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg# 阿里源(推薦使用)curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

添加 Docker 官方軟件源

接下來,需要將 Docker 的官方軟件源添加到你的 Ubuntu 系統中。運行以下命令(根據你的 Ubuntu 版本,$(lsb_release -cs)會自動替換為你的 Ubuntu 代號,如 focal、jammy 等):

#Docker 官方源 echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null#阿里 apt 源 echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

再次更新軟件包列表

添加完軟件源后,再次運行更新命令以確保你的軟件包列表是最新的:

sudo apt updatesudo apt-get update

安裝 docker

#安裝最新版本的 Dockersudo apt install docker-ce docker-ce-cli containerd.io#查看 Docker 版本 docker version#查看所有容器 docker ps -a

項目運行

構建鏡像

cd 到我們使用 git 拉下來的項目,如下,包含 Dockerfile 的目錄下

wKgZO2dsBX6ATTPaAAAPaIZEphI565.png

執行命令構建一個新的 Docker 鏡像

docker build -t auth .

構建成功后執行 docker images 查看鏡像,如下我名稱為 auth 的鏡像已經構建完成。

wKgZPGdsBX6AIzpGAAANNagVrQs705.png

運行容器

docker run -d -p 8080:8080 --restart=always --name auth auth

-d: 這個標志表示以“分離模式”運行容器,也就是說,容器會在后臺運行。你不會直接看到容器的輸出,除非你使用 docker logs命令或其他方法來查看。

-p 8080:8080: 這個參數用于端口映射。它將容器內的 8080 端口映射到宿主機的 8080 端口上。這樣,任何發送到宿主機 8080 端口的請求都會被轉發到容器的 8080 端口上。

--restart=always: 這個參數指定了容器的重啟策略。always表示無論何時容器停止運行(無論是因為退出還是 Docker 守護進程重啟),Docker 都會自動重啟這個容器。

運行完成后可以執行 docker ps 查看容器:

wKgZO2dsBX-ARPo1AACRobB_KuU123.png

新增安全組

打開服務器控制臺,找到我們當前的服務器,點擊名稱。

wKgZPGdsBX-AbSToAAHMnbGYb_4498.png

進去到詳情后,切換到安全組頁面,點擊配置規則。

wKgZO2dsBYCAPlj6AAEzJVrUasI323.png

在入方向規則下,點擊添加規則,然后加入我們項目的端口號。

wKgZPGdsBYCAFKzWAAG-TKZFYGU160.png

訪問接口

查看我們的服務器的 ip 地址

wKgZO2dsBYGAdc2VAAHD8JfT-uU715.png

打開瀏覽器,訪問我們項目的接口,成功獲取到信息。

wKgZPGdsBYGATetPAAKdLwXbsgo691.png

更新發布

接下來我們將接口調整一下,改為返回一個 hello word!

wKgZO2dsBYGABoaVAADW5i59T8g153.png

提交代碼

wKgZPGdsBYKAO4VvAAGr7AfT9PU446.png

回到服務器控制臺,執行 git pull 拉取最新代碼

wKgZO2dsBYKAB5qqAAAkSiFpryY089.png

使用更新后的代碼重新構建 Docker 鏡像。運行與之前相同的 docker build 命令

docker build -t auth .

停止并刪除舊的容器。

docker stop auth docker rm auth

使用更新后的鏡像啟動一個新容器。

docker run -d -p 8080:8080 --restart=always --name auth auth

刷新一下我們的瀏覽器,頁面中返回的信息是 hello word!

wKgZPGdsBYKATVlQAAA7gtA9Wvs248.png


審核編輯 黃宇

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

    關注

    0

    文章

    200

    瀏覽量

    15780
  • 云服務器
    +關注

    關注

    0

    文章

    639

    瀏覽量

    13370
收藏 人收藏

    評論

    相關推薦

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

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

    華為云 Flexus X 實例 docker 部署 rancher 并構建 k8s 集群

    ·?華為云最近正在舉辦 828 B2B 企業節,Flexus X 實例的促銷力度非常大,特別適合那些對算力性能有高要求的小伙伴。如果有自建 MySQL、Redis、Nginx 等服務
    的頭像 發表于 01-02 13:44 ?38次閱讀
    華為云 <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> rancher 并構建 k8s 集群

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

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

    華為云 Flexus 云服務器 X 實例部署 Note Mark 筆記工具

    前言 華為云 Flexus 云服務器 X 實例作為專為中小企業和開發者設計的新一代柔性算力云服務器,憑借其強勁的性能和高性價比脫穎而出。在此類云服務器上部署 Note Mark 筆記應
    的頭像 發表于 01-02 13:42 ?30次閱讀
    華為云 <b class='flag-5'>Flexus</b> 云服務器 <b class='flag-5'>X</b> <b class='flag-5'>實例</b><b class='flag-5'>部署</b> Note Mark 筆記工具

    華為云 Flexus 云服務器 X 實例Docker 環境下部署 JmalCloud 個人網盤

    能夠充分利用其出色的計算能力,還能享受穩定可靠的云服務體驗,為個人數據存儲與管理提供堅實的基礎。這一實踐將展示如何在 Flexus 云服務器 X 實例上高效
    的頭像 發表于 01-02 13:41 ?40次閱讀
    華為云 <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> JmalCloud 個人網盤

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

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

    華為云 Flexus X 實例 docker 部署 srs6 并調優,協議使用 webrtc 與 rtmp

    ·?華為云最近正在舉辦 828 B2B 企業節,Flexus X 實例的促銷力度非常大,特別適合那些對算力性能有高要求的小伙伴。如果有自建 MySQL、Redis、Nginx 等服務
    的頭像 發表于 12-31 15:40 ?80次閱讀
    華為云 <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> srs6 并調優,協議使用 webrtc 與 rtmp

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

    和開發者精心打造。它以卓越的柔性算力,為我們在 Docker 環境下搭建 java 開發環境提供有力支撐。 一、Flexus 云服務器 X 實例介紹 1.1
    的頭像 發表于 12-30 09:07 ?132次閱讀
    <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加速MySQL鏡像搭建XXL-JOB任務調度平臺

    平臺,展示如何利用 Flexus X 的高性能特性提升任務調度的效率和穩定性。通過詳細的步驟和配置,幫助大家可以快速掌握在 Flexus X
    的頭像 發表于 12-29 15:45 ?114次閱讀
    基于<b class='flag-5'>Flexus</b> <b class='flag-5'>X</b>加速MySQL<b class='flag-5'>鏡像</b>搭建XXL-JOB任務調度平臺

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

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

    華為云 Flexus X 實例 MySQL 性能加速評測及對比

    場景需求 3 二、Flexus 云服務器 X 購買 3 2.1 Flexus X 實例購買 4 2.2 購買 MySQL 加速
    的頭像 發表于 12-25 17:10 ?175次閱讀
    華為云 <b class='flag-5'>Flexus</b> <b class='flag-5'>X</b> <b class='flag-5'>實例</b> MySQL 性能加速評測及對比

    Flexus X 實例搭配華為云 EulerOS,快速部署 MySQL 并執行讀寫性能測試

    前言 本篇博文將繼續對華為云 Flexus 云服務器 X 實例進行 MySQL 相關的實例測評 查看鏡像信息 本地連接服務器之后輸入指令 l
    的頭像 發表于 12-24 12:27 ?200次閱讀
    <b class='flag-5'>Flexus</b> <b class='flag-5'>X</b> <b class='flag-5'>實例</b>搭配華為云 EulerOS,<b class='flag-5'>快速</b><b class='flag-5'>部署</b> MySQL 并執行讀寫性能測試

    基于 Flexus 云服務器 X 實例體驗大模型部署體驗測評

    也很快。但是大家目前都是在體驗,能不能部署一下試試呢? 今天,我們就以華為云 Flexus 云服務器 X 實例部署一下,順便測測其性能看看
    的頭像 發表于 12-24 12:27 ?183次閱讀
    基于 <b class='flag-5'>Flexus</b> 云服務器 <b class='flag-5'>X</b> <b class='flag-5'>實例</b>體驗大模型<b class='flag-5'>部署</b>體驗測評

    HarmonyOS開發實例:【自定義Emitter】

    使用[Emitter]實現事件的訂閱和發布,使用[自定義彈窗]設置廣告信息。
    的頭像 發表于 04-14 11:37 ?1012次閱讀
    HarmonyOS開發<b class='flag-5'>實例</b>:【<b class='flag-5'>自定義</b>Emitter】

    鴻蒙ArkUI實例:【自定義組件】

    組件是 OpenHarmony 頁面最小顯示單元,一個頁面可由多個組件組合而成,也可只由一個組件組合而成,這些組件可以是ArkUI開發框架自帶系統組件,比如?`Text`?、?`Button`?等,也可以是自定義組件,本節筆者簡單介紹一下自定義組件的語法規范。
    的頭像 發表于 04-08 10:17 ?655次閱讀
    主站蜘蛛池模板: 啊…嗯啊好深男男高h文总受| 99久久99久久免费精品蜜桃| 99久久精品免费看国产一区二区| 国产精品久久久久久久久久影院| 欧美高清另类video| 一本道高清不卡v免费费| 国产精品高潮呻吟AV久久96| 欧美阿v在线免播播放| 99久久综合| 米奇影视999| 美女快播第一网| 91综合精品网站久久| 蜜臀AV99无码精品国产专区| 99国产在线精品观看二区| 男生在床上脱美女 胸| 99精品成人无码A片观看金桔| 蜜芽视频在线观看视频免费播放 | 男人J放进女人P全黄网站| 18日本人XXXXXX18| 嫩草影院在线观看精品视频| https黄视| 小黄鸭YELLOWDUCK7596| 黑人巨茎vide抽搐| 永久免费毛片| 欧洲内射VIDEOXXX3D| 国产欧美一区二区精品仙草咪| 亚洲中文字幕永久在线全国| 玖玖爱在线播放| 糙汉顶弄抽插HHHH| 亚洲中文字幕无码爆乳APP| 久久夜色噜噜噜亚洲AV0000| 超碰在线视频97| 亚洲人成电影网站在线观看| 久久最新地址获取| 国产精品久久久久久免费字体| 在线观看插女生免费版| 欧美性情video sexo视频| 狠狠撩色姣姣综合久久| 被窝伦理午夜电影网| 亚洲综合色在线视频久| 色噜噜噜亚洲男人的天堂|