使用 Docker-Compose 进行 Dapr .NET SDK 开发
学习如何使用 Docker-Compose 进行本地开发
Docker-Compose
将此视为Dapr自托管与Docker指南的.NET指导。
docker-compose
是 Docker Desktop 附带的 CLI 工具,可用于一次运行多个容器。 它是一种将多个容器的生命周期自动化在一起的方法,并为面向 Kubernetes 的应用程序提供了类似于生产环境的开发体验。
- **优点:**由于
docker-compose
为您管理容器,因此您可以将依赖项作为应用程序定义的一部分,并停止在您的机器上长时间运行的容器。 - 缺点: 需要更多投资,服务需要被容器化才能开始使用。
- **缺点:**如果你对Docker不熟悉,可能很难进行调试和故障排除。
使用 Docker-Compose
从 .NET 的角度来看,一起使用 docker-compose
和 Dapr 并不需要专门的指导。 docker-compose
运行容器,一旦您的服务放在容器中,它的配置与其他任何编程技术都是相似的。
💡 App Port
在一个容器中,一个ASP.NET Core应用默认会监听端口80。 记住这个,以备日后需要配置 --app-port
时使用。
总结一下方法:
- 为每个服务创建一个
Dockerfile
- 创建一个
docker-compose.yaml
并将其添加到源码仓库中
要了解如何编写 docker-compose.yaml
,请从Hello, docker-compose sample开始。
与本地运行 dapr run
类似,对于每个服务,你需要选择唯一的 app-id。 选择容器的名称作为 app-id,将使其易于记忆。
Compose 文件应至少包含:
- 容器用于通信的网络
- 每个服务的容器
- 一个
<service>-daprd
sidecar 容器,指定了服务的端口和 app-id - 在容器中运行的额外依赖项(例如redis)
- 可选:Dapr placement 容器 (适用于 Actor)
您还可以从eShopOnContainers示例应用程序中查看更大的示例。