Usare il supporto docker per distribuire app in contenitori in qualsiasi lingua

L'interfaccia della riga di comando per sviluppatori di Azure (azd) supporta Docker come linguaggio, consentendo di definire i servizi compilati e distribuiti usando un Dockerfile. Se l'app è scritta in un linguaggio che azd non dispone del supporto predefinito per , ad esempio Go, Rust, Ruby, PHP o Kotlin, è possibile usare Docker come linguaggio per compilarlo e distribuirlo in Azure. Specificando Docker come linguaggio, si ottiene il controllo completo sul processo di containerizzazione, rendendolo ideale per:

  • Go, Rust, Ruby, PHP, Kotlin e altri linguaggi senza supporto predefinito azd
  • Applicazioni Polyglot ( ad esempio, un servizio che usa sia Python che Node.js)
  • Scenari in cui si vogliono ridurre le dipendenze locali per eseguire il modello
  • Carichi di lavoro con requisiti personalizzati per il sistema operativo o il runtime
  • Migrazione di progetti basati su Docker esistenti in Azure

Ad esempio, se si ha un'app scritta in Go e si vuole distribuirla in App contenitore di Azure con azd, è possibile definire un Dockerfile per il servizio Go e configurare azd per usarlo.

Configurare Docker come linguaggio in azure.yaml

Per usare Docker per un'app Go, un'app Rust o qualsiasi altro servizio, impostare la language proprietà su docker nel azure.yaml file e specificare il percorso del Dockerfile:

services:
  myservice:
    project: ./src/myservice
    language: docker
    docker:
      path: ./Dockerfile

Con questa configurazione, azd usa il Dockerfile specificato per compilare e distribuire il servizio. Questo approccio funziona per qualsiasi linguaggio o runtime che può essere in contenitori.

Scenario di esempio

Il hello-azd modello di avvio illustra come usare Docker come linguaggio in combinazione con compilazioni remote. azure.yaml Nel file il modello imposta language: docker e specifica remoteBuild: true:

metadata:
  template: hello-azd-dotnet
name: azd-starter
services:
  web:
    project: ./src
    language: docker
    host: containerapp
    docker:
      path: ./Dockerfile
      remoteBuild: true

Questa configurazione consente agli utenti di eseguire il modello e compilare l'immagine del contenitore in Registro Azure Container, anche se non hanno .NET o Docker installato in locale. Il processo di compilazione viene gestito interamente nel cloud, semplificando l'avvio degli sviluppatori senza configurare dipendenze locali o strumenti di compilazione.

Sfruttando le compilazioni remote, il hello-azd modello garantisce un'esperienza coerente e semplificata per tutti gli utenti, indipendentemente dall'ambiente locale.

Passaggi successivi