Condividi tramite


Docker Informazioni di riferimento sulle API Compose to Aspire AppHost

Questo riferimento fornisce mapping sistematici dalla Docker sintassi YAML compose alle chiamate API C# equivalenti Aspire . Usare queste tabelle come riferimento rapido quando si convertono i file Compose esistenti Docker in Aspire configurazioni host dell'applicazione. Ogni sezione illustra un aspetto specifico dell'orchestrazione dei contenitori, dalle definizioni di base del servizio alla gestione avanzata delle risorse e della rete.

Definizioni dei servizi

Docker Comporre Aspire Note
services: var builder = DistributedApplication.CreateBuilder(args) Generatore di applicazioni radice usato per aggiungere e rappresentare le risorse.
service_name: builder.Add*("service_name") Il nome del servizio diventa il nome della risorsa.

Collegamenti correlati:

Immagini e compilazioni

Docker Comporre Aspire Note
image: nginx:latest builder.AddContainer("name", "nginx:latest") Riferimento diretto all'immagine.
build: . builder.AddDockerfile("name", ".") Compilare da Dockerfile.
build: ./path builder.AddDockerfile("name", "./path") Compilare da un percorso specifico.
build.context: ./app builder.AddDockerfile("name", "./app") Contesto di compilazione.
build.dockerfile: Custom.dockerfile builder.Add*("name").WithDockerfile("Custom.dockerfile") Nome personalizzato Dockerfile .

Collegamenti correlati:

.NET progetti

Docker Comporre Aspire Note
build: ./MyApi (per .NET) builder.AddProject<Projects.MyApi>("myapi") Riferimento diretto .NET al progetto.

Collegamenti correlati:

Mapping delle porte

Docker Comporre Aspire Note
ports: ["8080:80"] .WithHttpEndpoint(port: 8080, targetPort: 80) Mapping dell'endpoint HTTP. Le porte sono facoltative; le porte dinamiche vengono usate se omesse.
ports: ["443:443"] .WithHttpsEndpoint(port: 443, targetPort: 443) Mapping degli endpoint HTTPS. Le porte sono facoltative; le porte dinamiche vengono usate se omesse.
expose: ["8080"] .WithEndpoint(port: 8080) Esposizione interna delle porte. Le porte sono facoltative; le porte dinamiche vengono usate se omesse.

Collegamenti correlati:

Variabili di ambiente

Docker Comporre Aspire Note
environment: KEY=value .WithEnvironment("KEY", "value") Variabile di ambiente statica.
environment: KEY=${HOST_VAR} .WithEnvironment(context => context.EnvironmentVariables["KEY"] = hostVar) Variabile di ambiente con contesto di callback.
env_file: .env Non supportato File di ambiente (implementazione personalizzata).

Collegamenti correlati:

Volumi e archiviazione

Docker Comporre Aspire Note
volumes: ["data:/app/data"] .WithVolume("data", "/app/data") Volume denominato.
volumes: ["./host:/container"] .WithBindMount("./host", "/container") Associa montaggio.
volumes: ["./config:/app:ro"] .WithBindMount("./config", "/app", isReadOnly: true) Montaggio binding di sola lettura.

Collegamenti correlati:

Dipendenze e ordinamento

Docker Comporre Aspire Note
depends_on: [db] .WithReference(db) Dipendenza del servizio con connessione.
depends_on: db: condition: service_started .WaitFor(db) Attendere l'avvio del servizio.
depends_on: db: condition: service_healthy .WaitForCompletion(db) Attendere il controllo integrità.

Collegamenti correlati:

Reti

Docker Comporre Aspire Note
networks: [backend] Automatico Aspire gestisce automaticamente la rete.
Reti personalizzate Non necessario L'individuazione dei servizi gestisce la comunicazione tra servizi.

Collegamenti correlati:

Limiti delle risorse

Docker Comporre Aspire Note
deploy.resources.limits.memory: 512m Non supportato I limiti delle risorse non sono supportati in Aspire.
deploy.resources.limits.cpus: 0.5 Non supportato I limiti delle risorse non sono supportati in Aspire.

Collegamenti correlati:

Controlli di salute

Docker Comporre Aspire Note
healthcheck.test: ["CMD", "curl", "http://localhost/health"] Predefinita per le integrazioni. Aspire le integrazioni includono i controlli di integrità.
healthcheck.interval: 30s Configurabile nell'integrazione. La configurazione del controllo integrità varia in base al tipo di risorsa.

Collegamenti correlati:

Criteri di riavvio

Docker Comporre Aspire Note
restart: unless-stopped Non supportato I criteri di riavvio non sono supportati in Aspire.
restart: always Non supportato I criteri di riavvio non sono supportati in Aspire.
restart: no Impostazione predefinita Nessun criterio di riavvio.

Collegamenti correlati:

Registrazione

Docker Comporre Aspire Note
logging.driver: json-file Predefinito Aspire fornisce la registrazione integrata.
logging.options.max-size: 10m Configurazione del dashboard Gestito tramite Aspire dashboard.

Collegamenti correlati:

Servizi di database

Docker Comporre Aspire Note
image: postgres:15 builder.AddPostgres("name") PostgreSQL con configurazione automatica.
image: mysql:8 builder.AddMySql("name") MySQL con configurazione automatica.
image: redis:7 builder.AddRedis("name") Redis con configurazione automatica.
image: mongo:latest builder.AddMongoDB("name") MongoDB con configurazione automatica.

Collegamenti correlati:

Vedere anche