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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

docker 部署_GitLab CI 自动部署netcore web api 到Docker

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

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

.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 執行任務

GitLab CI 介紹

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

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

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

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

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

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

Runner三步走:

  • 安裝

  • 注冊

  • 使用

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

    • Shell

    • Docker

    • Docker Machine

    • Parallels

    • VirtualBox

    • SSH

    • Kubernetes

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

    ?安裝本地Shell Runner

  • 下載安裝

  • sudo curl --output /usr/local/bin/gitlab-runner
    https://gitlab-ci-multi-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-ci-multi-runner-darwin-amd64

    2. 提升權限

    sudo chmod +x /usr/local/bin/gitlab-runner

    注冊Runner

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

    sudo gitlab-runner register
    Please enter the gitlab-ci coordinator URL (e.g. https://gitlab.com )

    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. 選擇當遇到沒有打標簽的提交時是否會執行,我們選 true

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

    8. 先一個執行者 executor

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

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

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

    編輯.gitlab-ci.yml 執行任務

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

    build_image:
    script:
    -?docker?build?-t?my-docker-image?.
    -?docker?run?-t?-p?8080:80?my-docker-image

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

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

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

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

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

    docker images

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

    docker ps

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

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

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

    總結

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

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