Поделиться через


Docker Справочник по API Compose to Aspire AppHost

Эта ссылка предоставляет систематические сопоставления синтаксиса Docker Compose YAML с эквивалентными Aspire вызовами API C#. Используйте эти таблицы в качестве краткой ссылки при преобразовании существующих 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) Дождитесь проверки работоспособности.

Связанные ссылки:

Сети

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 с автоматической конфигурацией.

Связанные ссылки:

См. также