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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

通过 Docker Compose 组合 ASP NET Core 和 SQL Server

發布時間:2023/12/4 数据库 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 通过 Docker Compose 组合 ASP NET Core 和 SQL Server 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本文模擬一個比較完整的項目,包括前端(MVC), 后端(WebApi)和數據庫(mssql-server-linux)。通過Docker Compose 定義,組合并執行它們。涉及到 Docker Compose 安裝,命令,docker-compose.yml文件編寫,WebApi 和 MVC 項目編寫,Dockfile編寫等

Docker Compose

簡介

Docker Compose是Docker三劍客之一,用于定義和運行多個Docker容器應用,負責實現對 Docker 容器集群的快速編排。

我們可以通過Dockerfile定義一個單獨的應用容器。然而在日常工作中,經常會碰到需要多個容器相互配合來完成某項任務的情況。例如要實現一個 Web 項目,除了 Web 服務容器本身,往往還需要再加上后端的數據庫服務容器等。

Compose 恰好滿足了這樣的需求。它允許用戶通過一個單獨的 docker-compose.yml 配置板文件(YAML 格式)來定義一組相關聯的應用容器。然后使用使用單個命令,就可以根據配置中創建并啟動所有服務。

安裝

  • curl 下載 Docker Compose

  • sudo curl -L https://github.com/docker/compose/releases/download/{{site.compose_version}}/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose

    替換{{site.compose_version}}為最新的版本號

  • 賦執行權限

  • sudo chmod +x /usr/local/bin/docker-compose
  • 測試是否安裝成功

  • docker-compose --version

    WebApi 項目

    創建項目

  • 參考微軟示例Create a Web API?創建一個基于 net core 2.1的WebApi項目,命名為Todo.Api. 參照示例添加 model 和 database context。

  • 在 ConfigureServices 里注冊 database context.

  • services.AddDbContext<TodoContext>(options =>options.UseSqlServer(Configuration["ConnectionString"]));
  • 參考微軟示例Work with SQL Server LocalDB?添加 Seed 類并在Program.cs里面添加 seed initializer等。

  • 只需要運行Add-Migration命令生成遷移。無需執行Update-Database命令,因為程序運行起來時候會通過context.Database.Migrate()來執行遷移。

    編寫Dockfile

    FROM microsoft/dotnet:2.1-aspnetcore-runtimeWORKDIR /appEXPOSE 80/tcpENTRYPOINT ["dotnet", "Todo.Api.dll"]

    Web MVC 項目

    創建項目

  • 創建一個基于 net core 2.1的Web MVC項目,命名為webMVC.

  • 添加 Service 去調用 WebApi 開放的接口。

  • 編寫Dockfile

    FROM microsoft/dotnet:2.1-aspnetcore-runtimeWORKDIR /appEXPOSE 80/tcpENTRYPOINT ["dotnet", "WebMVC.dll"]

    編寫 docker-compose.yml文件

    image: 指定鏡像或構建生成鏡像的名字
    build:構建生成鏡像。context 指令指定 Dockerfile 所在文件夾的路徑,dockerfile 指令指定 Dockerfile 文件名
    environment:設置環境變量
    ports:暴露端口信息。使用宿主端口:容器端口 (HOST:CONTAINER) 格式
    volumes:數據卷所掛載路徑設置。可以設置宿主機路徑 (HOST:CONTAINER)
    container_name:指定容器名稱。默認將會使用 項目名稱_服務名稱_序號 這樣的格式
    depends_on:解決容器的依賴、啟動先后的問題

    詳細請參考?Compose file version 3 reference

    運行項目

  • 在docker-compose.yml文件通目錄下執行docker-compose build構建項目中的服務容器.

  • docker-compose build
  • 通過?docker-compose up?創建,關聯并啟動服務.

  • docker-compose up

    -d 在后臺運行服務容器。
    --scale SERVICE=NUM 創建服務的N個實例。

    詳細請參考?Compose (docker-compose) CLI reference

    源代碼

    • github

    參考

    • compose gitHub

    • Quickstart: Compose and ASP.NET Core with SQL Server

    • Get Started Building Microservices with ASP.NET Core and Docker in Visual Studio Code

    • Docker Compose 項目


    總結

    以上是生活随笔為你收集整理的通过 Docker Compose 组合 ASP NET Core 和 SQL Server的全部內容,希望文章能夠幫你解決所遇到的問題。

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