此参考提供从 Docker Compose YAML 语法到等效 Aspire C# API 调用的系统映射。 将这些表用作将现有 Docker Compose 文件转换为 Aspire 应用程序主机配置时的快速参考。 每个部分介绍容器业务流程的特定方面,从基本服务定义到高级网络和资源管理。
服务定义
| Docker 组成 | Aspire | 注释 |
|---|---|---|
services: |
var builder = DistributedApplication.CreateBuilder(args) |
用于添加和表示资源的根应用程序生成器。 |
service_name: |
builder.Add*("service_name") |
服务名称将成为资源名称。 |
相关链接:
映像和生成
| Docker 组成 | Aspire | 注释 |
|---|---|---|
image: nginx:latest |
builder.AddContainer("name", "nginx:latest") |
直接图像引用。 |
build: . |
builder.AddDockerfile("name", ".") |
从 . 生成 。Dockerfile |
build: ./path |
builder.AddDockerfile("name", "./path") |
从特定路径生成。 |
build.context: ./app |
builder.AddDockerfile("name", "./app") |
生成上下文。 |
build.dockerfile: Custom.dockerfile |
builder.Add*("name").WithDockerfile("Custom.dockerfile") |
自定义 Dockerfile 名称。 |
相关链接:
.NET 项目
| Docker 组成 | Aspire | 注释 |
|---|---|---|
build: ./MyApi (for .NET) |
builder.AddProject<Projects.MyApi>("myapi") |
直接 .NET 项目引用。 |
相关链接:
端口映射
| Docker 组成 | Aspire | 注释 |
|---|---|---|
ports: ["8080:80"] |
.WithHttpEndpoint(port: 8080, targetPort: 80) |
HTTP 终结点映射。 端口是可选的;如果省略动态端口,则使用动态端口。 |
ports: ["443:443"] |
.WithHttpsEndpoint(port: 443, targetPort: 443) |
HTTPS 终结点映射。 端口是可选的;如果省略动态端口,则使用动态端口。 |
expose: ["8080"] |
.WithEndpoint(port: 8080) |
内部端口公开。 端口是可选的;如果省略动态端口,则使用动态端口。 |
相关链接:
环境变量
| Docker 组成 | Aspire | 注释 |
|---|---|---|
environment: KEY=value |
.WithEnvironment("KEY", "value") |
静态环境变量。 |
environment: KEY=${HOST_VAR} |
.WithEnvironment(context => context.EnvironmentVariables["KEY"] = hostVar) |
具有回调上下文的环境变量。 |
env_file: .env |
不支持 | 环境文件(自定义实现)。 |
相关链接:
卷和存储
| Docker 组成 | Aspire | 注释 |
|---|---|---|
volumes: ["data:/app/data"] |
.WithVolume("data", "/app/data") |
命名卷。 |
volumes: ["./host:/container"] |
.WithBindMount("./host", "/container") |
绑定装载。 |
volumes: ["./config:/app:ro"] |
.WithBindMount("./config", "/app", isReadOnly: true) |
只读绑定装载。 |
相关链接:
依赖项和排序
| Docker 组成 | Aspire | 注释 |
|---|---|---|
depends_on: [db] |
.WithReference(db) |
服务依赖项与连接。 |
depends_on: db: condition: service_started |
.WaitFor(db) |
等待服务启动。 |
depends_on: db: condition: service_healthy |
.WaitForCompletion(db) |
等待运行状况检查。 |
相关链接:
网络
| Docker 组成 | Aspire | 注释 |
|---|---|---|
networks: [backend] |
自动 | Aspire 自动处理网络。 |
| 自定义网络 | 不需要 | 服务发现处理服务间通信。 |
相关链接:
资源限制
| Docker 组成 | Aspire | 注释 |
|---|---|---|
deploy.resources.limits.memory: 512m |
不支持 | 不支持资源限制 Aspire。 |
deploy.resources.limits.cpus: 0.5 |
不支持 | 不支持资源限制 Aspire。 |
相关链接:
健康检查
| Docker 组成 | Aspire | 注释 |
|---|---|---|
healthcheck.test: ["CMD", "curl", "http://localhost/health"] |
内置集成。 | Aspire 集成包括运行状况检查。 |
healthcheck.interval: 30s |
可在集成中配置。 | 运行状况检查配置因资源类型而异。 |
相关链接:
重启策略
| Docker 组成 | Aspire | 注释 |
|---|---|---|
restart: unless-stopped |
不支持 | 不支持重启策略 Aspire。 |
restart: always |
不支持 | 不支持重启策略 Aspire。 |
restart: no |
违约 | 无重启策略。 |
相关链接:
伐木业
| Docker 组成 | Aspire | 注释 |
|---|---|---|
logging.driver: json-file |
内置 | Aspire 提供集成日志记录。 |
logging.options.max-size: 10m |
仪表板配置 | 通过 Aspire 仪表板进行管理。 |
相关链接:
数据库服务
| Docker 组成 | Aspire | 注释 |
|---|---|---|
image: postgres:15 |
builder.AddPostgres("name") |
PostgreSQL 具有自动配置。 |
image: mysql:8 |
builder.AddMySql("name") |
MySQL 具有自动配置。 |
image: redis:7 |
builder.AddRedis("name") |
Redis 具有自动配置。 |
image: mongo:latest |
builder.AddMongoDB("name") |
MongoDB 具有自动配置。 |
相关链接: