哈哈哈哈哈操欧洲电影,久草网在线,亚洲久久熟女熟妇视频,麻豆精品色,久久福利在线视频,日韩中文字幕的,淫乱毛视频一区,亚洲成人一二三,中文人妻日韩精品电影

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

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

jf_21561199 ? 來源:jf_21561199 ? 作者:jf_21561199 ? 2024-12-25 21:15 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

前言

???云端部署新體驗(yàn),C# Web API 遇上 Git Docker,828 B2B 企業(yè)節(jié)特惠來襲!Flexus X 實(shí)例,為您的 C#應(yīng)用提供強(qiáng)大支撐,結(jié)合 Git 版本控制與 Docker 容器化部署,實(shí)現(xiàn)代碼高效管理與無縫遷移。即刻行動(dòng),讓您的 Web 服務(wù)更加穩(wěn)定、高效,領(lǐng)跑數(shù)字化轉(zhuǎn)型之路!

???本實(shí)驗(yàn)深入演示了如何在 Ubuntu 環(huán)境中,利用 Git 進(jìn)行版本控制管理代碼,并通過 Docker 技術(shù)自定義構(gòu)建鏡像,從而實(shí)現(xiàn)項(xiàng)目從代碼到應(yīng)用的快速構(gòu)建、打包與部署流程。這一流程不僅提升了開發(fā)效率,還確保了環(huán)境的一致性與可重復(fù)性。

環(huán)境準(zhǔn)備

購(gòu)買服務(wù)器配置

本次實(shí)驗(yàn)使用的是 Flexus 云服務(wù)器 X 實(shí)例 服務(wù)器。

wKgZPGdsBXmALG2KAACgmvlB9Hk561.png

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

wKgZO2dsBXqAV5RzAAECo10_NbQ658.png

打開 xshell,使用購(gòu)買的服務(wù)器的公網(wǎng) IP 地址,和設(shè)置的密碼,連接上我們的服務(wù)器。

wKgZPGdsBXqAS1FJAAM3QAKAdTA860.png

項(xiàng)目部署

項(xiàng)目準(zhǔn)備(Dockerfile 文件)

我這里以 c#為例,新建一個(gè) .net8.0 的 Web API 項(xiàng)目

wKgZO2dsBXqADCYuAAIcuQ2rRRQ461.png

這個(gè)新建的官網(wǎng)的 webApi 項(xiàng)目自帶一個(gè)接口 weatherforecast 接口,可以獲取到最近的天氣,因?yàn)楸酒饕康氖侨绾问褂?git+docker 在服務(wù)器上發(fā)布,因此不做太多改動(dòng)。本地啟動(dòng)一下,成功訪問到,我們稍后將這個(gè)程序部署到服務(wù)器上。

wKgZPGdsBXuAIdYJAAFR6UZiexs157.png

因?yàn)槲覀兒竺娌捎?Git 方式來發(fā)布應(yīng)用,因此在 gitee 上新建倉(cāng)庫,將代碼上傳上去。

在項(xiàng)目路徑下新建一個(gè) Dockerfile 文件,內(nèi)容如下(根據(jù)自己的解決方案名稱、構(gòu)建環(huán)境,如.net 6.0、7.0 等版本,亦或是其他語言,對(duì)以下代碼就行調(diào)整,本部署方式適用于其他編程語言或其他版本的.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 用于構(gòu)建一個(gè) ASP.NET Core 應(yīng)用程序的 Docker 鏡像

FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS base:從 Microsoft Container Registry (MCR) 拉取 ASP.NET Core 8.0 的官方運(yùn)行時(shí)鏡像作為基礎(chǔ)鏡像,并將其標(biāo)記為 base。這個(gè)鏡像包含了運(yùn)行 ASP.NET Core 應(yīng)用程序所需的一切,但不包含構(gòu)建工具。

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

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

Git 部署并拉取代碼

安裝 Git

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

sudo apt update sudo apt install git

配置 Git 用戶信息

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

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

SSH 密鑰

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

檢查是否已存在 SSH 密鑰:

ls -al ~/.ssh

如果控制臺(tái)輸入結(jié)果像我一樣

wKgZPGdsBXyAPn0xAAANOB5hzzY027.png

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

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

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

直接按回車鍵,它會(huì)接受默認(rèn)的文件名/root/.ssh/id_rsa來保存私鑰

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

wKgZO2dsBXyAN6DeAAAsoINA_RU996.png

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

wKgZPGdsBXyAZkboAAAP3jQzGOU277.png

輸入以下命令,公鑰內(nèi)容將被輸出到終端,然后我們復(fù)制這些內(nèi)容。

cat /root/.ssh/id_rsa.pub

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

wKgZO2dsBX2AFMdGAAHmuQu86wM518.png

添加完成后我們就可以在控制臺(tái)執(zhí)行命令將我們的項(xiàng)目代碼克隆下來了。

wKgZPGdsBX6AYn2wAAJoi3aqtI0057.png

安裝 docker

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

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

添加 Docker GPG 密鑰

這是為了驗(yàn)證從 Docker 倉(cāng)庫下載的軟件包的完整性。

#官方 GPG key (可能國(guó)內(nèi)訪問會(huì)存在問題)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 系統(tǒng)中。運(yùn)行以下命令(根據(jù)你的 Ubuntu 版本,$(lsb_release -cs)會(huì)自動(dòng)替換為你的 Ubuntu 代號(hào),如 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

再次更新軟件包列表

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

sudo apt updatesudo apt-get update

安裝 docker

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

項(xiàng)目運(yùn)行

構(gòu)建鏡像

cd 到我們使用 git 拉下來的項(xiàng)目,如下,包含 Dockerfile 的目錄下

wKgZO2dsBX6ATTPaAAAPaIZEphI565.png

執(zhí)行命令構(gòu)建一個(gè)新的 Docker 鏡像

docker build -t auth .

構(gòu)建成功后執(zhí)行 docker images 查看鏡像,如下我名稱為 auth 的鏡像已經(jīng)構(gòu)建完成。

wKgZPGdsBX6AIzpGAAANNagVrQs705.png

運(yùn)行容器

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

-d: 這個(gè)標(biāo)志表示以“分離模式”運(yùn)行容器,也就是說,容器會(huì)在后臺(tái)運(yùn)行。你不會(huì)直接看到容器的輸出,除非你使用 docker logs命令或其他方法來查看。

-p 8080:8080: 這個(gè)參數(shù)用于端口映射。它將容器內(nèi)的 8080 端口映射到宿主機(jī)的 8080 端口上。這樣,任何發(fā)送到宿主機(jī) 8080 端口的請(qǐng)求都會(huì)被轉(zhuǎn)發(fā)到容器的 8080 端口上。

--restart=always: 這個(gè)參數(shù)指定了容器的重啟策略。always表示無論何時(shí)容器停止運(yùn)行(無論是因?yàn)橥顺鲞€是 Docker 守護(hù)進(jìn)程重啟),Docker 都會(huì)自動(dòng)重啟這個(gè)容器。

運(yùn)行完成后可以執(zhí)行 docker ps 查看容器:

wKgZO2dsBX-ARPo1AACRobB_KuU123.png

新增安全組

打開服務(wù)器控制臺(tái),找到我們當(dāng)前的服務(wù)器,點(diǎn)擊名稱。

wKgZPGdsBX-AbSToAAHMnbGYb_4498.png

進(jìn)去到詳情后,切換到安全組頁面,點(diǎn)擊配置規(guī)則。

wKgZO2dsBYCAPlj6AAEzJVrUasI323.png

在入方向規(guī)則下,點(diǎn)擊添加規(guī)則,然后加入我們項(xiàng)目的端口號(hào)。

wKgZPGdsBYCAFKzWAAG-TKZFYGU160.png

訪問接口

查看我們的服務(wù)器的 ip 地址

wKgZO2dsBYGAdc2VAAHD8JfT-uU715.png

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

wKgZPGdsBYGATetPAAKdLwXbsgo691.png

更新發(fā)布

接下來我們將接口調(diào)整一下,改為返回一個(gè) hello word!

wKgZO2dsBYGABoaVAADW5i59T8g153.png

提交代碼

wKgZPGdsBYKAO4VvAAGr7AfT9PU446.png

回到服務(wù)器控制臺(tái),執(zhí)行 git pull 拉取最新代碼

wKgZO2dsBYKAB5qqAAAkSiFpryY089.png

使用更新后的代碼重新構(gòu)建 Docker 鏡像。運(yùn)行與之前相同的 docker build 命令

docker build -t auth .

停止并刪除舊的容器。

docker stop auth docker rm auth

使用更新后的鏡像啟動(dòng)一個(gè)新容器。

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

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

wKgZPGdsBYKATVlQAAA7gtA9Wvs248.png


審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • Git
    Git
    +關(guān)注

    關(guān)注

    0

    文章

    207

    瀏覽量

    17047
  • 云服務(wù)器
    +關(guān)注

    關(guān)注

    0

    文章

    840

    瀏覽量

    14743
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    使用Python/MyHDL創(chuàng)建自定義FPGA IP

    使用 Python/MyHDL 創(chuàng)建自定義 FPGA IP,與 Vivado 集成,并通過 PYNQ 進(jìn)行控制——實(shí)現(xiàn)軟件上的簡(jiǎn)單硬件設(shè)計(jì)。
    的頭像 發(fā)表于 04-09 09:53 ?212次閱讀
    使用Python/MyHDL創(chuàng)建<b class='flag-5'>自定義</b>FPGA IP

    MCUXpresso SDK創(chuàng)建自定義清單

    開始。 測(cè)試導(dǎo)入和生成項(xiàng)目 此時(shí),自定義 MCUXpresso SDK 清單已準(zhǔn)備就緒,可供使用。要進(jìn)行測(cè)試,請(qǐng)將示例項(xiàng)目導(dǎo)入 MCUXpresso for VS Code 并構(gòu)建它。 - 將
    發(fā)表于 04-07 07:11

    02. 如何在 Allegro 中快速自定義字體?| 芯巧Allegro PCB 設(shè)計(jì)小訣竅

    Allegro PCB設(shè)計(jì)小訣竅系列--如何在Allegro中快速自定義字體背景介紹:在進(jìn)行PCB設(shè)計(jì)時(shí),設(shè)計(jì)人員通常會(huì)在PCB上添加各種絲印信息,用來標(biāo)注元器件的位號(hào)、PCB版本信息、繪制時(shí)間以及
    發(fā)表于 04-03 16:34

    KubePi:開源Kubernetes可視化管理面板,集群管理如此簡(jiǎn)單

    。 擴(kuò)展性強(qiáng) :設(shè)計(jì)上考慮了可擴(kuò)展性,允許通過插件或自定義功能來擴(kuò)展其能力。 三、安裝部署:多種方式快速上手 KubePi提供了靈活的部署方式,適合從個(gè)人體驗(yàn)到生產(chǎn)環(huán)境的各種場(chǎng)景。 3
    發(fā)表于 02-11 12:53

    采用匯編指示符來使用自定義指令

    * 使用riscv-nuclei-elf-objdump -d a.out &gt; main.dump命令查看反匯編代碼,結(jié)果如下所示 如圖所示,在指定位置插入了自定義的指令數(shù)據(jù)。 2
    發(fā)表于 10-28 06:02

    強(qiáng)實(shí)時(shí)運(yùn)動(dòng)控制內(nèi)核MotionRT750(九):內(nèi)置C語言的自定義機(jī)械手模型實(shí)現(xiàn)

    內(nèi)置C語言的自定義機(jī)械手模型實(shí)現(xiàn)。
    的頭像 發(fā)表于 10-27 14:14 ?968次閱讀
    強(qiáng)實(shí)時(shí)運(yùn)動(dòng)控制內(nèi)核MotionRT750(九):內(nèi)置<b class='flag-5'>C</b>語言的<b class='flag-5'>自定義</b>機(jī)械手模型實(shí)現(xiàn)

    如何在e203 SOC中添加自定義外設(shè)

    外設(shè)的基地址和連接e203_soc_top信號(hào)使用,并將自定義的外設(shè)正確實(shí)例化在此對(duì)外接口口模塊中。 3、在e203_soc_top中正確實(shí)例化第2步中的對(duì)外接口模塊 4、在system頂層模塊中正確
    發(fā)表于 10-20 10:38

    中國(guó)企業(yè)飛向世界,金山辦公+華為聯(lián)手造了“AI協(xié)同直升機(jī)”

    AI協(xié)同辦公,企業(yè)數(shù)智化飛起來
    的頭像 發(fā)表于 09-16 00:44 ?3423次閱讀
    <b class='flag-5'>讓</b>中國(guó)企業(yè)飛向世界,金山辦公+華為聯(lián)手造了“AI協(xié)同直升機(jī)”

    【M-K1HSE開發(fā)板免費(fèi)體驗(yàn)】相關(guān)源碼之閱讀和分析1-使用XComponent + Vsync 實(shí)現(xiàn)自定義動(dòng)畫

    自定義繪制。 結(jié)合您提供的文件結(jié)構(gòu)截圖和 CMakeLists.txt 內(nèi)容,我們可以非常清晰地梳理出這個(gè)項(xiàng)目的實(shí)現(xiàn)流程、執(zhí)行環(huán)境和核心邏輯。 一、 項(xiàng)目概述與目標(biāo) 從
    發(fā)表于 09-03 16:05

    【VisionFive 2單板計(jì)算機(jī)試用體驗(yàn)】1. 環(huán)境搭建與代碼整編

    /what-is-lll-lock-wait-private-and-what-can-cause-a-hang-while-malloc-consolida 創(chuàng)建一個(gè)文件夾存放docker項(xiàng)目D:\\\\docker_pro\
    發(fā)表于 07-08 23:07

    創(chuàng)龍 瑞芯微 RK3562 國(guó)產(chǎn) 2GHz 四核A53 工業(yè)開發(fā)板—Docker容器部署方法說明

    不會(huì)有任何接口。使用Docker,可像管理應(yīng)用程序一樣管理基礎(chǔ)結(jié)構(gòu)。通過利用Docker快速發(fā)布
    的頭像 發(fā)表于 07-03 11:00 ?653次閱讀
    創(chuàng)龍 瑞芯微 RK3562 國(guó)產(chǎn) 2GHz 四核A53 工業(yè)開發(fā)板—<b class='flag-5'>Docker</b>容器<b class='flag-5'>部署</b>方法說明

    完整指南:如何使用樹莓派5、Hailo AI Hat、YOLO、Docker進(jìn)行自定義數(shù)據(jù)集訓(xùn)練?

    今天,我將展示如何使用令人印象深刻的HailoAIHat在樹莓派5上訓(xùn)練、編譯和部署自定義模型。注意:文章內(nèi)的鏈接可能需要科學(xué)上網(wǎng)。HailoAIHat根據(jù)的設(shè)置,在樹莓派5的CPU上運(yùn)行YOLO
    的頭像 發(fā)表于 06-28 08:23 ?4826次閱讀
    完整指南:如何使用樹莓派5、Hailo AI Hat、YOLO、<b class='flag-5'>Docker</b>進(jìn)行<b class='flag-5'>自定義</b>數(shù)據(jù)集訓(xùn)練?

    KiCad 中的自定義規(guī)則(KiCon 演講)

    “ ?Seth Hillbrand 在 KiCon US 2025 上為大家介紹了 KiCad 的規(guī)則系統(tǒng),并詳細(xì)講解了自定義規(guī)則的設(shè)計(jì)與實(shí)例。? ” ? 演講主要圍繞 加強(qiáng) KiCad 中的自定義
    的頭像 發(fā)表于 06-16 11:17 ?2541次閱讀
    KiCad 中的<b class='flag-5'>自定義</b>規(guī)則(KiCon 演講)

    HarmonyOS應(yīng)用自定義鍵盤解決方案

    自定義鍵盤是一種替換系統(tǒng)默認(rèn)鍵盤的解決方案,可實(shí)現(xiàn)鍵盤個(gè)性化交互。允許用戶結(jié)合業(yè)務(wù)需求與操作習(xí)慣,對(duì)按鍵布局進(jìn)行可視化重構(gòu)、設(shè)置多功能組合鍵位,使輸入更加便捷和舒適。在安全防護(hù)層面,自定義鍵盤可以
    的頭像 發(fā)表于 06-05 14:19 ?2597次閱讀

    參考STM32 MPU生態(tài)資源利用Yocto構(gòu)建STM32MP2芯片鏡像運(yùn)行docker

    X-LINUX-AZURE_Distribution_Package指南 https://wiki.stmicroelectronics.cn/stm32mpu/wiki/X-LINUX-AZURE_Distribution_Package
    發(fā)表于 05-10 16:47
    江城| 九江县| 沙坪坝区| 绥宁县| 龙胜| 濮阳县| 湘西| 景东| 贡嘎县| 疏勒县| 共和县| 南木林县| 读书| 车险| 尉犁县| 宝兴县| 重庆市| 云梦县| 新泰市| 广灵县| 崇信县| 北流市| 东乡县| 南宫市| 南木林县| 瑞金市| 富川| 中牟县| 新巴尔虎左旗| 普安县| 莱阳市| 九台市| 洞口县| 全椒县| 安泽县| 兴义市| 元江| 上栗县| 綦江县| 彭阳县| 正定县|