コンテンツにスキップ
Docs Try Aspire
Docs Try

Docker Compose から Aspire AppHost への変換

このリファレンスは、Docker Compose の YAML 構文から同等の Aspire AppHost API 呼び出しへの体系的なマッピングを提供します。既存の Docker Compose ファイルを Aspire アプリケーション ホスト構成に変換する場合のクイックリファレンスとして、これらのテーブルを使用してください。

Docker ComposeAspire注記
services:var builder = DistributedApplication.CreateBuilder(args)リソースの追加と表現に使用されるルート アプリケーション ビルダー
service_name:builder.Add*("service_name")サービス名がリソース名になります

詳細については、Docker Compose サービス をご覧ください。

Docker ComposeAspire注記
image: nginx:latestbuilder.AddContainer("name", "nginx", "latest")直接イメージ参照
build: .builder.AddDockerfile("name", ".")Dockerfile からビルドします
build: ./pathbuilder.AddDockerfile("name", "./path")特定のパスからビルドします
build.context: ./appbuilder.AddDockerfile("name", "./app")ビルド コンテキスト
build.dockerfile: Custom.dockerfilebuilder.Add*("name").WithDockerfile("Custom.dockerfile")カスタム Dockerfile 名
生成された Dockerfilebuilder.AddDockerfileBuilder("name", "./app", callback, stage: "runtime")AppHost コードから Dockerfile を生成します

詳細については、Docker Compose ビルド リファレンス および WithDockerfile をご覧ください。

Docker ComposeAspire注記
pull_policy: always.WithImagePullPolicy(ImagePullPolicy.Always)常にイメージをプルします
pull_policy: missing.WithImagePullPolicy(ImagePullPolicy.Missing)ローカルに存在しない場合のみプルします
pull_policy: never.WithImagePullPolicy(ImagePullPolicy.Never)レジストリからプルしません

詳細については、Docker Compose pull_policy および イメージ プル ポリシー をご覧ください。

Docker ComposeAspire注記
build: ./MyApi (.NET の場合)builder.AddProject<Projects.MyApi>("myapi")直接 .NET プロジェクト参照

詳細については、.NET プロジェクトの追加 をご覧ください。

Docker ComposeAspire注記
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 ComposeAspire / 注記
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 環境 および 外部パラメータ をご覧ください。

Docker ComposeAspire注記
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 ボリューム および コンテナ データの永続化 をご覧ください。

Docker ComposeAspire注記
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 および 起動プロファイル をご覧ください。

Docker ComposeAspire注記
networks: [backend]自動Aspire がネットワークを自動的に処理します
Compose ネットワーク上のサービス ホスト名.GetHostAddressExpression(endpoint)エンドポイントに対して生成された Docker Compose サービス ホスト名を生成します
カスタム ネットワーク.ConfigureComposeFile(file => { ... })自動ネットワーキングが不十分な場合は、生成された Compose ファイルをカスタマイズします

詳細については、Docker Compose ネットワーク および サービス検出 をご覧ください。

Docker ComposeAspire注記
deploy.resources.limits.memory: 512mサポートされていませんリソース制限は Aspire でサポートされていません
deploy.resources.limits.cpus: 0.5サポートされていませんリソース制限は Aspire でサポートされていません

詳細については、Docker Compose デプロイ リファレンス をご覧ください。

Docker ComposeAspire注記
healthcheck.test: ["CMD", "curl", "http://localhost/health"]統合に組み込まれているAspire 統合には正常性チェックが含まれています
healthcheck.interval: 30s統合で設定可能正常性チェック構成はリソースの種類によって異なります

詳細については、Docker Compose healthcheck および 正常性チェック をご覧ください。

Docker ComposeAspire注記
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 ComposeAspire注記
logging.driver: json-file組み込みAspire は統合ログを提供します
logging.options.max-size: 10mダッシュボード構成Aspire ダッシュボード経由で管理されます

詳細については、Docker Compose ログ および テレメトリ をご覧ください。

Docker ComposeAspire注記
image: postgres:15builder.AddPostgres("name")自動構成を使用した PostgreSQL
image: mysql:8builder.AddMySql("name")自動構成を使用した MySQL
image: redis:7builder.AddRedis("name")自動構成を使用した Redis
image: mongo:latestbuilder.AddMongoDB("name")自動構成を使用した MongoDB

詳細については、Docker Compose サービス および データベース統合 をご覧ください。