Docker Compose から Aspire AppHost への変換
このリファレンスは、Docker Compose の YAML 構文から同等の Aspire AppHost API 呼び出しへの体系的なマッピングを提供します。既存の Docker Compose ファイルを Aspire アプリケーション ホスト構成に変換する場合のクイックリファレンスとして、これらのテーブルを使用してください。
サービス定義
Section titled “サービス定義”| Docker Compose | Aspire | 注記 |
|---|---|---|
services: | var builder = DistributedApplication.CreateBuilder(args) | リソースの追加と表現に使用されるルート アプリケーション ビルダー |
service_name: | builder.Add*("service_name") | サービス名がリソース名になります |
詳細については、Docker Compose サービス をご覧ください。
イメージとビルド
Section titled “イメージとビルド”| Docker Compose | 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 名 |
| 生成された Dockerfile | builder.AddDockerfileBuilder("name", "./app", callback, stage: "runtime") | AppHost コードから Dockerfile を生成します |
詳細については、Docker Compose ビルド リファレンス および WithDockerfile をご覧ください。
プル ポリシー
Section titled “プル ポリシー”| Docker Compose | Aspire | 注記 |
|---|---|---|
pull_policy: always | .WithImagePullPolicy(ImagePullPolicy.Always) | 常にイメージをプルします |
pull_policy: missing | .WithImagePullPolicy(ImagePullPolicy.Missing) | ローカルに存在しない場合のみプルします |
pull_policy: never | .WithImagePullPolicy(ImagePullPolicy.Never) | レジストリからプルしません |
詳細については、Docker Compose pull_policy および イメージ プル ポリシー をご覧ください。
.NET プロジェクト
Section titled “.NET プロジェクト”| Docker Compose | Aspire | 注記 |
|---|---|---|
build: ./MyApi (.NET の場合) | builder.AddProject<Projects.MyApi>("myapi") | 直接 .NET プロジェクト参照 |
詳細については、.NET プロジェクトの追加 をご覧ください。
ポート マッピング
Section titled “ポート マッピング”| Docker Compose | 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 Compose ポート および エンドポイント構成 をご覧ください。
| Docker Compose | Aspire / 注記 |
|---|---|
environment: KEY=value | .WithEnvironment("KEY", "value") 静的環境変数 |
environment: KEY=${HOST_VAR} | .WithEnvironment(context => context.EnvironmentVariables["KEY"] = hostVar) コールバック コンテキスト付き環境変数 |
environment: KEY=${PARAM} | .AsEnvironmentPlaceholder(resource) inside .PublishAsDockerComposeService(...) Compose 環境変数プレースホルダー |
env_file: .env | .ConfigureEnvFile(env => { ... }) 環境ファイルのカスタマイズ(13.1 以降で利用可能) |
詳細については、Docker Compose 環境 および 外部パラメータ をご覧ください。
ボリュームとストレージ
Section titled “ボリュームとストレージ”| Docker Compose | 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 Compose ボリューム および コンテナ データの永続化 をご覧ください。
依存関係と順序付け
Section titled “依存関係と順序付け”| Docker Compose | Aspire | 注記 |
|---|---|---|
depends_on: [db] | .WithReference(db) | 接続文字列インジェクション付きサービス依存関係 |
depends_on: db: condition: service_started | .WaitFor(db) | サービス開始を待機します |
depends_on: db: condition: service_healthy | .WaitForCompletion(db) | 正常性チェックの成功を待機します |
詳細については、Docker Compose depends_on および 起動プロファイル をご覧ください。
ネットワーク
Section titled “ネットワーク”| Docker Compose | Aspire | 注記 |
|---|---|---|
networks: [backend] | 自動 | Aspire がネットワークを自動的に処理します |
| Compose ネットワーク上のサービス ホスト名 | .GetHostAddressExpression(endpoint) | エンドポイントに対して生成された Docker Compose サービス ホスト名を生成します |
| カスタム ネットワーク | .ConfigureComposeFile(file => { ... }) | 自動ネットワーキングが不十分な場合は、生成された Compose ファイルをカスタマイズします |
詳細については、Docker Compose ネットワーク および サービス検出 をご覧ください。
リソース制限
Section titled “リソース制限”| Docker Compose | Aspire | 注記 |
|---|---|---|
deploy.resources.limits.memory: 512m | サポートされていません | リソース制限は Aspire でサポートされていません |
deploy.resources.limits.cpus: 0.5 | サポートされていません | リソース制限は Aspire でサポートされていません |
詳細については、Docker Compose デプロイ リファレンス をご覧ください。
正常性チェック
Section titled “正常性チェック”| Docker Compose | Aspire | 注記 |
|---|---|---|
healthcheck.test: ["CMD", "curl", "http://localhost/health"] | 統合に組み込まれている | Aspire 統合には正常性チェックが含まれています |
healthcheck.interval: 30s | 統合で設定可能 | 正常性チェック構成はリソースの種類によって異なります |
詳細については、Docker Compose healthcheck および 正常性チェック をご覧ください。
再起動ポリシー
Section titled “再起動ポリシー”| Docker Compose | Aspire | 注記 |
|---|---|---|
restart: unless-stopped | .PublishAsDockerComposeService((resource, service) => service.Restart = "unless-stopped") | 生成された Docker Compose サービスをカスタマイズします |
restart: always | .PublishAsDockerComposeService((resource, service) => service.Restart = "always") | 生成された Docker Compose サービスをカスタマイズします |
restart: no | デフォルト | 再起動ポリシーなし |
詳細については、Docker Compose 再起動 をご覧ください。
| Docker Compose | Aspire | 注記 |
|---|---|---|
logging.driver: json-file | 組み込み | Aspire は統合ログを提供します |
logging.options.max-size: 10m | ダッシュボード構成 | Aspire ダッシュボード経由で管理されます |
詳細については、Docker Compose ログ および テレメトリ をご覧ください。
データベース サービス
Section titled “データベース サービス”| Docker Compose | 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 |
詳細については、Docker Compose サービス および データベース統合 をご覧ください。