Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Include: Solo integrazione dell'hosting —
Client integrazione non inclusa
L'integrazione AspireDocker dell'hosting consente di distribuire le Aspire applicazioni usando Docker Compose. Questa integrazione modella gli ambienti Compose come risorse di calcolo che possono ospitare i servizi della tua applicazione. Quando si usa questa integrazione, Aspire genera Docker file Compose che definiscono tutti i servizi, le reti e i volumi necessari per eseguire l'applicazione in un ambiente in contenitori. Supporta la generazione di Docker file Compose dal modello di app per la distribuzione, l'orchestrazione di più servizi, tra cui un Aspire dashboard per la visualizzazione dei dati di telemetria, la configurazione delle variabili di ambiente e le dipendenze del servizio e la gestione della rete dei contenitori e dell'individuazione dei servizi.
Integrazione del servizio di hosting
L'integrazione Docker dell'hosting è disponibile nel pacchetto NuGet 📦Aspire.Hosting.Docker.
dotnet add package Aspire.Hosting.Docker
Per ulteriori informazioni, consultare dotnet add package o Gestire le dipendenze dei pacchetti nelle applicazioni .NET.
Aggiungere la Docker risorsa dell'ambiente Compose
L'esempio seguente illustra come aggiungere un Docker ambiente Compose al modello di app usando il AddDockerComposeEnvironment metodo :
var builder = DistributedApplication.CreateBuilder(args);
// Add a Docker Compose environment
var compose = builder.AddDockerComposeEnvironment("compose");
// Add your services to the Docker Compose environment
var cache = builder.AddRedis("cache")
.PublishAsDockerComposeService((resource, service) =>
{
service.Name = "cache";
});
var apiService = builder.AddProject<Projects.ApiService>("apiservice")
.PublishAsDockerComposeService((resource, service) =>
{
service.Name = "api";
});
var webApp = builder.AddProject<Projects.WebApp>("webapp")
.WithReference(cache)
.WithReference(apiService)
.PublishAsDockerComposeService((resource, service) =>
{
service.Name = "web";
});
builder.Build().Run();
Il codice precedente:
- Crea un Docker ambiente di sviluppo Compose chiamato
compose. - Aggiunge un servizio di cache Redis che verrà incluso nella distribuzione Docker Compose.
- Aggiunge un progetto di servizio API che verrà inserito in contenitori e incluso nella distribuzione.
- Aggiunge un'applicazione Web che fa riferimento sia alla cache che al servizio API.
- Configura tutti i servizi da pubblicare come Docker servizi Compose tramite PublishAsDockerComposeService.
Suggerimento
Con la compose variabile assegnata, è possibile passarla all'API WithComputeEnvironment per disambiguare le risorse di calcolo per le soluzioni che definiscono più di una. In caso contrario, la compose variabile non è obbligatoria.
Aggiungere una Docker risorsa di ambiente Compose con le proprietà
È possibile configurare varie proprietà dell'ambiente Docker Compose usando il WithProperties metodo :
builder.AddDockerComposeEnvironment("compose")
.WithProperties(env =>
{
env.DefaultContainerRegistry = "myregistry.azurecr.io";
env.DefaultNetworkName = "my-network";
env.BuildContainerImages = true;
});
Aggiungere una risorsa dell'ambiente Compose con il file Compose
È possibile personalizzare il file Compose generato Docker usando il ConfigureComposeFile metodo :
builder.AddDockerComposeEnvironment("compose")
.ConfigureComposeFile(composeFile =>
{
composeFile.Networks.Add("custom-network", new()
{
Driver = "bridge"
});
});
Aggiungere Aspire una risorsa dashboard all'ambiente
L'integrazione Docker dell'hosting include un Aspire dashboard per la visualizzazione dei dati di telemetria. È possibile configurarlo o disabilitarlo usando il WithDashboard metodo :
// Enable dashboard with custom configuration
builder.AddDockerComposeEnvironment("compose")
.WithDashboard(dashboard =>
{
dashboard.WithHostPort(8080)
.WithForwardedHeaders(enabled: true);
});
// Disable dashboard
builder.AddDockerComposeEnvironment("compose")
.WithDashboard(enabled: false);
Il WithHostPort metodo configura la porta usata per accedere al Aspire dashboard da un browser. Il metodo WithForwardedHeaders(IResourceBuilder<DockerComposeAspireDashboardResource>, Boolean) abilita l’elaborazione delle intestazioni inoltrate quando si accede al dashboard attraverso un proxy inverso o tramite un servizio di bilanciamento del carico.
Pubblicazione e distribuzione
Per distribuire l'applicazione usando Docker Compose, usare :aspire publish
aspire publish -o docker-compose-artifacts
Per ulteriori informazioni, vedere riferimento ai comandi di pubblicazione di aspire.
Questo comando genera Docker file di Compose e tutti gli artefatti necessari nella directory di output specificata. I file generati includono:
-
docker-compose.yml: file Compose principale Docker che definisce tutti i servizi. -
docker-compose.override.yml: File di override per le impostazioni specifiche dello sviluppo. -
.env: file di variabili di ambiente. - Script e file di configurazione specifici del servizio.
Dopo la pubblicazione, è possibile distribuire l'applicazione usando Docker Compose:
cd docker-compose-artifacts
docker compose up -d
Variabili di ambiente
L'integrazione Docker dell'hosting acquisisce le variabili di ambiente dal modello di app e le include in un .env file. In questo modo si garantisce che tutte le configurazioni vengano passate correttamente ai servizi in contenitori.