docker - 使用 Docker Compose 的多容器 ASP.NET Core 应用程序
问题描述
如何使用 Docker Compose 创建多容器 ASP.NET Core 应用程序?
解决方案
创建新的 asp.net core web api 项目
创建新的 asp.net core web 应用程序项目
右键单击 web api 项目 -> 添加 -> 添加容器编排器支持 -> Docker Compose -> 确定 -> 目标操作系统 -> Linux -> 确定
右键单击 Web 应用程序项目 -> 添加 -> 添加 Container Orchestrator 支持 -> Docker Compose -> 确定 -> 目标操作系统 -> Linux -> 确定
最后,您将有一个新项目作为 docker-compose,它将包含 docker-compose.yml
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
打开 cmd 并为 ssl 运行此代码
dotnet dev-certs https -ep %USERPROFILE%.aspnet\https\aspnetapp.pfx -p mypass123
您将在 C:\users.....\https 中拥有 aspnetapp.pfx 文件,将此文件复制并粘贴到每个 asp.net 核心项目 https 文件夹中
并开发 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
就是这样,你可以运行 docker-compose 文件
码头工人组成
推荐阅读
- c# - C#,为什么将 int[] 传递给 HashSet
添加一个值为零的默认元素 - javascript - 需要帮助缩放和旋转视口中的图像
- linux - Linux 中 for 循环中的 Grep
- java - 计算合并排序中的交换次数(Java)
- javascript - 是否可以从一个组件获取/解析 JSON 数据到不同的渲染/动态路由?(反应 JS)
- scala - 为什么 signleton 对象的名称与本示例中的类不同?
- python - 两个 CSV 文件之间的 Pandas Merge 会导致 NaN 返回,它不应该是
- mips - 在多周期中实现跳转寄存器(jr、sll、slti)
- node.js - ffmpeg:当输入缩放到某些尺寸时,xstack 不起作用
- python - 是否可以在 django 中为选择字段提供外部文件输入?