首页 > 解决方案 > 使用 Docker Compose 的多容器 ASP.NET Core 应用程序

问题描述

如何使用 Docker Compose 创建多容器 ASP.NET Core 应用程序?

标签: dockerasp.net-coredocker-compose

解决方案


  1. 创建新的 asp.net core web api 项目

  2. 创建新的 asp.net core web 应用程序项目

  3. 右键单击 web api 项目 -> 添加 -> 添加容器编排器支持 -> Docker Compose -> 确定 -> 目标操作系统 -> Linux -> 确定

  4. 右键单击 Web 应用程序项目 -> 添加 -> 添加 Container Orchestrator 支持 -> Docker Compose -> 确定 -> 目标操作系统 -> Linux -> 确定

  5. 最后,您将有一个新项目作为 docker-compose,它将包含 docker-compose.yml

在此处输入图像描述

  1. docker-compose.yml 必须是这样的,但是我们会开发这个文件

     version: '3.4'
    
     services:
       api:
         image: ${DOCKER_REGISTRY-}api
         build:
           context: .
           dockerfile: Api/Dockerfile
    
       webapp:
         image: ${DOCKER_REGISTRY-}webapp
         build:
           context: .
           dockerfile: WebApp/Dockerfile
    
  2. 打开 cmd 并为 ssl 运行此代码

    dotnet dev-certs https -ep %USERPROFILE%.aspnet\https\aspnetapp.pfx -p mypass123

  3. 您将在 C:\users.....\https 中拥有 aspnetapp.pfx 文件,将此文件复制并粘贴到每个 asp.net 核心项目 https 文件夹中

  4. 并开发 docker-compose.yml 如下

     version: '3.4'
    
     services:
       api:
         image: ${DOCKER_REGISTRY-}api
         build:
           context: .
           dockerfile: Api/Dockerfile
         ports:
           - "9000:443"
           - "9001:80"
         environment:
           - ASPNETCORE_ENVIRONMENT=Development
           - ASPNETCORE_URLS=https://+:443;http://+:80
           - ASPNETCORE_HTTPS_PORT=9000
           - ASPNETCORE_Kestrel__Certificates__Default__Password=mypass123
           - ASPNETCORE_Kestrel__Certificates__Default__Path=/https/aspnetapp.pfx
         volumes:
             - ./Api/https/aspnetapp.pfx:/https/aspnetapp.pfx:ro 
    
       webapp:
         image: ${DOCKER_REGISTRY-}webapp
         build:
           context: .
           dockerfile: WebApp/Dockerfile
         ports:
           - "9002:443"
           - "9003:80"
         environment:
           - ASPNETCORE_ENVIRONMENT=Development
           - ASPNETCORE_URLS=https://+:443;http://+:80
           - ASPNETCORE_HTTPS_PORT=9000
           - ASPNETCORE_Kestrel__Certificates__Default__Password=mypass123
           - ASPNETCORE_Kestrel__Certificates__Default__Path=/https/aspnetapp.pfx
         volumes:
             - ./WebApp/https/aspnetapp.pfx:/https/aspnetapp.pfx:ro
    
  5. 就是这样,你可以运行 docker-compose 文件

码头工人组成

在此处输入图像描述


推荐阅读