日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

超简单让.NET Core开发者快速拥有CI/CD的能力-Docker版本

發布時間:2023/12/4 asp.net 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 超简单让.NET Core开发者快速拥有CI/CD的能力-Docker版本 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

超簡單讓.NET Core開發者快速擁有CI/CD的能力-Docker版本

前言

上一篇自動化測試,全面且詳細的介紹了從零開始到發布版本的步驟,這是傳統的方式,本次為大家帶來的是如何在5分鐘內使用上docker進行CI/CD,畢竟現在的容器化如火如荼,本示例是基于CentOS-7系統,在示例中, jenkins 和部署 .NET Core 應用程序,都使用 docker 來完成。

首先是安裝docker

在服務器上執行下面的命令,安裝 docker

yum install docker

安裝完成后,執行命令 docker --version ,輸出版本號證明安裝成功。

Docker version 19.03.4, build 9013bf583a

拉取并部署jenkins

緊接著,馬上拉取 jenkins 的鏡像

docker pull jenkins/jenkins

拉取成功后,執行容器部署,輸入下面的命令

docker run --name myjenkins \ -u root \ -d \ --rm \ -v /var/run/docker.sock:/var/run/docker.sock \ -v /usr/bin/docker:/usr/bin/docker \ -v /var/jenkins_home:/var/jenkins_home \ -p 8080:8080 -p 50000:50000 \ jenkins/jenkins:lts

部署完成后,可能你需要手動開啟防火墻端口 8080 后才可以在外部瀏覽器中訪問jenkins的站點

開啟防火墻端口8080

輸入下面的命令,開啟8080端口

firewall-cmd --zone=public --add-port=8080/tcp --permanent firewall-cmd --reload

好了,現在我們可以通過下面的地址訪問jenkins的web管理控制臺了

http://{你的IP地址}:8080

如果你出現了下面的圖,不要慌張,簡單執行下面兩個步驟就可以解決問題了。

修改步驟

1、修改/var/jenkinshome/updates/default.json,搜索 google.com ,改為 baidu.com 就可以了 2、修改/var/jenkinshome/hudson.model.UpdateCenter.xml,這個文件是jenkins下載插件的默認源地址,將:https://updates.jenkins.io/update-center.json 中的 https 修改為 http,然后執行命令 docker restart myjenkins 重啟 jenkins 實例就可以了。

為.NET Core 編寫Dockerfile文件

Visual Studio 已經為我們集成了docker的支持,所以基本上我們是不需要編寫Dockerfile文件的,只要鼠標右鍵點擊項目,添加docker支持即可

這里我選擇Linux版本

生成的Dockerfile文件如下

FROM microsoft/dotnet:2.2-aspnetcore-runtime AS base WORKDIR /app EXPOSE 80 FROM microsoft/dotnet:2.2-sdk AS build WORKDIR /src COPY ["src/Ron.Blogs/Ron.Blogs.csproj", "src/Ron.Blogs/"] RUN dotnet restore "src/Ron.Blogs/Ron.Blogs.csproj" COPY . . WORKDIR "/src/src/Ron.Blogs" RUN dotnet build "Ron.Blogs.csproj" -c Release -o /app FROM build AS publish RUN dotnet publish "Ron.Blogs.csproj" -c Release -o /app FROM base AS final WORKDIR /app COPY --from=publish /app . ENTRYPOINT ["dotnet", "Ron.Blogs.dll"]

這里生成的文件其實是有點小問題的,因為我們是在項目中生成的Dockerfile文件,而上面的腳本中,COPY 的命令執行的目錄卻是從 /src 開始,如果我們直接執行 docker build ,會提示找不到該項目文件 src/Ron.Blogs/Ron.Blogs.csproj,正確的解決方法是將Dockerfile文件移動到src同級目錄,即解決方案根目錄下,如下圖

開始構建容器化實例

因為我們將在容器中編譯.NET Core 程序,所以本地服務器不需要安裝 .NET Core SDK。接下來的事情就變得非常簡單了,上jenkins去創建一個任務,然后作一些簡單的配置后就開始構建。

首先創建任務

配置git倉庫地址

配置執行shell命令

輸入下面的腳本

docker build -t blogs . docker run --rm -d --name blogs -p 15002:80 blogs echo "success"

就這樣,一個完整的流程走完了,現在訪問容器實例地址:http://172.16.1.202:15002/api/blog/detail/1

完美運行成功!

注意事項

上面的腳本在第一次運行的時候沒有問題,但是在第二次構建的時候,將會提示實例名稱 blogs 已存在,我們需要修改一下構建腳本,加入 docker stop blogs

docker build -t blogs . docker stop blogs docker run --rm -d --name blogs -p 15002:80 blogs echo "success"

結束語

上面就是本次的快速擁抱CI/CD的全部內容,看完點贊,保持好習慣!

總結

以上是生活随笔為你收集整理的超简单让.NET Core开发者快速拥有CI/CD的能力-Docker版本的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。