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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

GitLab CI 自动部署netcore web api 到Docker

發(fā)布時間:2023/12/4 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 GitLab CI 自动部署netcore web api 到Docker 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.



前端篇文章中,我們已經(jīng)成功的將asp.net core webapi在Docker容器中運行,并且部署了一套自己的GitLab環(huán)境。


.Net & Docker(二)5分鐘快速用Docker部署你自己的GitLab

.Net & Docker(一)在Docker容器上運行.Net Core API



接下來我們將用GitLab CI 來做到當有代碼提交時自動部署asp.net core web api到Docker容器。

  • GitLab CI 介紹

  • 安裝本地Shell Runner

  • 注冊Runner

  • 編輯 .gitlab-ci.yml 執(zhí)行任務

GitLab CI 介紹

GitLab CI 是GitLab的一部分,提供了一套UI及API用來管理項目的構建等。每一個構建請求稱之為job,而這些job最后會被指定的Runner來執(zhí)行。

Runner是GitLab CI的重要組件之一,它可以部署在獨立的服務器上,不影響GitLab服務器。

GitLab CI 支持多平臺(Windows、OSX、Unix) 多語言(Java、Php、Ruby等),這其中自然也包括C#。它還有以下幾個特性:

  • 分布式運行:多服務器、并行

  • 可以運行在本地、Docker容器、SSH Remote等

  • 支持批處理:windows、Power Shell (這讓我們用msbuild 編譯上一代的.net程序有了可能)


Runner三步走:

  • 安裝

  • 注冊

  • 使用

  • 在使用也就是執(zhí)行階段,GitLab Runner 給我們提供了以下7種執(zhí)行方式。官方稱之為 executors。

    • Shell

    • Docker

    • Docker Machine

    • Parallels

    • VirtualBox

    • SSH

    • Kubernetes


    在注冊Runner階段,我們就需要選擇executor,我們今天將選擇使用本地Shell這種大家最熟悉的方式來執(zhí)行作業(yè)Job。

    ?安裝本地Shell Runner

  • 下載安裝


  • 2. 提升權限


    注冊Runner

    1. 輸入以下命令啟動注冊

    2. 我們會輸入 http://127.0.0.1?也就是我們安裝在本地的GitLab

    3. Please enter the gitlab-ci token for this runner 要求輸入 gitlab-ci token

    在項目的 Settings->Pipelines中可以找到


    4. 輸入描述

    5. 輸入tag(留空也可以,之后可以進行編輯 )

    6. 選擇當遇到?jīng)]有打標簽的提交時是否會執(zhí)行,我們選 true

    7. 是否鎖定此runner 到當前項目, 我們選 false

    8. 先一個執(zhí)行者 executor

    這一步比較重要 (ssh, docker+machine, docker-ssh+machine, kubernetes, docker, parallels, virtualbox, docker-ssh, shell) 我們先shell在本地執(zhí)行。

    9. 選擇默認使用的鏡像:microsoft/dotnet:latest

    在注冊完之后,我們可以在GitLab獲取gitlab-ci token 的頁面看到我們剛剛注冊的這個 runner


    編輯.gitlab-ci.yml 執(zhí)行任務

    這是我們今天的最后一步,也非常簡單。我們只需要在根目錄添加 .gitlab-ci.yml的 輸入兩行命令即可。

    而這兩句命令就是我們自己去構建鏡像,以及運行容器的命令只不過由 gitlab-ci runner 來執(zhí)行而已。

    我們最后要做的只需要提交一份代碼即可:


    編輯了一下 .gitlab-ci.yml文件并把它提交到gitlab。


    這個commit下會有一個任務被自動觸發(fā)執(zhí)行,查看這個任務,和我們在命令行執(zhí)行 docker build 和 docker run 沒有什么兩樣 。



    最后我們可以直接訪問重新編譯之后的結果 。


    查看我們的鏡像列表, my-docker-image剛剛被更新。

    查看我們的容器列表,基于 my-docker-image 啟動的容器也已經(jīng)被更新。



    到這里我們已經(jīng)完成了 dotnet core api 自動部署到 Docker 的全部過程,有了CI持續(xù)集成之后,我們開發(fā)完成代碼自測通過之后只需要提交代碼即可自動發(fā)布到測試完成(測試通過之后,還可以一鍵部署到生產(chǎn)環(huán)境)需要人工操作。同時還可以在CI中加入自動化測試,以保障開發(fā)快速穩(wěn)定地迭代。


    點擊左下角【閱讀原文】格式體驗更佳

    總結

    以上是生活随笔為你收集整理的GitLab CI 自动部署netcore web api 到Docker的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。