Utiliser la prise en charge de Docker pour déployer des applications conteneurisées dans n’importe quel langage

Azure Developer CLI (azd) prend en charge Docker en tant que langage, ce qui vous permet de définir des services générés et déployés à l’aide d’un fichier Dockerfile. Si votre application est écrite dans un langage qui azd n'a pas de prise en charge intégrée pour ( par exemple Go, Rust, Ruby, PHP ou Kotlin), vous pouvez utiliser Docker comme langage pour générer et le déployer sur Azure. En spécifiant Docker comme langage, vous bénéficiez d’un contrôle total sur le processus de conteneurisation, ce qui le rend idéal pour :

  • Go, Rust, Ruby, PHP, Kotlin et d’autres langages sans prise en azd charge intégrée
  • Applications polyglottes (par exemple, un service qui utilise à la fois Python et Node.js)
  • Scénarios dans lesquels vous souhaitez réduire les dépendances locales pour exécuter le modèle
  • Charges de travail avec des exigences de système d’exploitation ou d’exécution personnalisées
  • Migration de projets Docker existants vers Azure

Par exemple, si vous avez une application écrite en Go et que vous souhaitez la déployer sur Azure Container Apps avec azd, vous pouvez définir un fichier Dockerfile pour votre service Go et configurer azd pour l’utiliser.

Configurer Docker en tant que langage dans azure.yaml

Pour utiliser Docker pour une application Go, une application Rust ou tout autre service, définissez la language propriété docker sur votre azure.yaml fichier et spécifiez le chemin d’accès à votre fichier Dockerfile :

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

Avec cette configuration, azd utilise le fichier Dockerfile spécifié pour générer et déployer votre service. Cette approche fonctionne pour n’importe quel langage ou runtime qui peut être conteneurisé.

Exemple de scénario

Le hello-azd modèle de démarrage montre comment utiliser Docker en tant que langage en combinaison avec les builds distantes. Dans le azure.yaml fichier, le modèle définit language: docker et spécifie remoteBuild: true:

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

Cette configuration permet aux utilisateurs d’exécuter le modèle et de générer l’image conteneur dans Azure Container Registry, même s’ils n’ont pas installé .NET ou Docker localement. Le processus de génération est entièrement géré dans le cloud, ce qui permet aux développeurs de commencer facilement sans configurer de dépendances locales ou d’outils de génération.

En tirant parti des builds distantes, le hello-azd modèle garantit une expérience cohérente et simplifiée pour tous les utilisateurs, quel que soit leur environnement local.

Étapes suivantes