次の方法で共有


Docker AppHost API リファレンス Aspire 作成する

このリファレンスでは、 Docker Compose YAML 構文から同等の C# API 呼び出し Aspire 体系的なマッピングを提供します。 既存の 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 ( .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) 正常性チェックを待ちます。

関連リンク:

Networks

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 自動構成を使用します。

関連リンク:

こちらも参照ください