Partager via


Se connecter à une console de débogage de conteneur dans Azure Container Apps

La plateforme Azure Container Apps propose une console de débogage pour vous aider à résoudre les problèmes liés à votre application dans les circonstances suivantes :

  • Vous ne pouvez pas vous connecter au conteneur cible quand vous utilisez un conteneur qui inclut uniquement l’application et ses dépendances de runtime, ou une image « distroless ».
  • Quand vous rencontrez des problèmes de mise en réseau, vos images n’ont pas d’utilitaires de débogage pour permettre des investigations.

Vous pouvez vous connecter à la console de débogage à l’aide d’Azure CLI.

Remarque

La console de débogage crée un conteneur distinct, qui partage les ressources sous-jacentes avec le conteneur dans lequel votre application s’exécute. Si un conteneur de débogage existe déjà, la console de débogage le réutilise au lieu d’en créer un autre. Il existe au maximum un seul conteneur de débogage en cours d’exécution par réplica d’application de conteneur. Si vous n’avez pas besoin de maintenir l’exécution d’un conteneur de débogage, entrez exit, ou utilisez Ctrl/Cmd + D dans la session de console de débogage.

Azure CLI

Pour vous connecter à la console de débogage d’un conteneur, utilisez la commande az containerapp debug. Pour quitter la console, entrez exit, ou utilisez Ctrl/Cmd + D.

Par exemple, connectez-vous à une console de débogage de conteneur dans une application de conteneur avec un seul conteneur à l’aide de la commande suivante. Avant d’exécuter cette commande, remplacez <PLACEHOLDERS> par les valeurs de votre application de conteneur.

az containerapp debug \
  --name <CONTAINER_APP_NAME> \
  --resource-group <RESOURCE_GROUP>

Pour vous connecter à une console de débogage de conteneur dans une application de conteneur avec plusieurs révisions, réplicas et conteneurs, incluez les paramètres suivants dans la commande az containerapp debug.

Argument Description
--revision Nom de révision du conteneur à déboguer.
--replica Nom de réplica du conteneur à déboguer.
--container Nom de conteneur du conteneur à déboguer.

Vous pouvez obtenir les noms de révision avec la commande az containerapp revision list. Avant d’exécuter cette commande, remplacez <PLACEHOLDERS> par les valeurs de votre application de conteneur.

az containerapp revision list \
  --name <CONTAINER_APP_NAME> \
  --resource-group <RESOURCE_GROUP> \
  --query "[].name"

Utilisez la commande az containerapp replica list pour obtenir les noms de réplica et de conteneur. Avant d’exécuter cette commande, remplacez <PLACEHOLDERS> par les valeurs de votre application de conteneur.

az containerapp replica list \
  --name <CONTAINER_APP_NAME> \
  --resource-group <RESOURCE_GROUP> \
  --revision <REVISION_NAME> \
  --query "[].{Containers:properties.containers[].name, Name:name}"

Connectez-vous à la console de débogage du conteneur avec la commande az containerapp debug. Avant d’exécuter cette commande, remplacez <PLACEHOLDERS> par les valeurs de votre application de conteneur.

az containerapp debug \
  --name <CONTAINER_APP_NAME> \
  --resource-group <RESOURCE_GROUP> \
  --revision <REVISION_NAME> \
  --replica <REPLICA_NAME> \
  --container <CONTAINER_NAME> 

Outils intégrés à la console de débogage

Les outils de diagnostic suivants sont préinstallés sur la console de débogage pour vous aider à résoudre les problèmes :

Si vous souhaitez installer d’autres outils, exécutez la commande tdnf install -y <TOOL_NAME>. Avant d’exécuter cette commande, remplacez <PLACEHOLDERS> par les valeurs de votre application de conteneur.

Par exemple, installez le JDK dans la console de débogage à l’aide de la commande suivante :

tdnf install -y msopenjdk-17

Scénario – Accès au système de fichiers du conteneur via la console de débogage

Par défaut, la console de débogage s’exécute en tant qu’utilisateur racine.

Vous pouvez accéder à /proc/1 pour accéder au système de fichiers du conteneur, si votre conteneur s’exécute en tant qu’utilisateur racine. Si votre conteneur ne s’exécute pas en tant qu’utilisateur racine, exécutez la commande ci-dessous pour changer d’utilisateur avant d’accéder au répertoire /proc/1, sinon vous obtiendrez une erreur liée à un refus d’autorisation.

switch-user