Événements
Créer des applications intelligentes
17 mars, 21 h - 21 mars, 10 h
Rejoignez la série de rencontres pour créer des solutions IA évolutives basées sur des cas d’usage réels avec d’autres développeurs et experts.
S’inscrire maintenantCe navigateur n’est plus pris en charge.
Effectuez une mise à niveau vers Microsoft Edge pour tirer parti des dernières fonctionnalités, des mises à jour de sécurité et du support technique.
Dans ce didacticiel, vous allez configurer le déploiement continu d’une image conteneur personnalisée à partir des référentiels Azure Container Registry managés ou du Docker Hub.
Dans le portail Azure, accédez à la page de gestion de votre application App Service.
Dans le menu de gauche, cliquez sur Centre de déploiement>Paramètres.
Choisir la source de déploiement dépend de votre scénario :
docker build
et docker push
directement dans votre registre de conteneurs, puis mettre à jour votre application App Service pour exécuter la nouvelle image. Pour plus d’informations, consultez Fonctionnement de CI/CD avec GitHub Actions.Notes
Pour une application Docker Compose, sélectionnez Container Registry.
Si vous choisissez GitHub Actions, cliquez sur Autoriser et suivez les invites d’autorisation. Si vous avez déjà autorisé GitHub, vous pouvez le déployer à partir d’un référentiel d’utilisateur différent en cliquant sur Modifier le compte.
Après avoir autorisé votre compte Azure auprès de GitHub, sélectionnez l’organisation, le référentiel et la branche à partir desquels vous allez effectuer le déploiement.
Notes
Les conteneurs sidecar (préversion) remplaceront les applications multiconteneur (Docker Compose) dans App Service. Pour commencer, consultez Didacticiel : Configurer un conteneur sidecar pour un conteneur personnalisé dans Azure App Service (préversion).
Pour déployer une application multiconteneur (Docker Compose), sélectionnez Docker Compose dans Type de conteneur.
Si vous ne voyez pas la liste déroulante Type de conteneur, faites défiler la page jusqu’à Source, puis sélectionnez Container Registry.
Dans Source du Registre, sélectionnez l’emplacement de votre registre de conteneurs. S’il ne s’agit ni de Azure Container Registry ni de Docker Hub, sélectionnez Registre privé.
Notes
Si votre application multiconteneur (Docker Compose) utilise plusieurs images privées, assurez-vous que les images privées se trouvent dans le même registre privé et qu’elles sont accessibles avec les mêmes informations d’identification utilisateur. Si votre application multiconteneur utilise uniquement des images publiques, sélectionnez Docker Hub, même si certaines images ne se trouvent pas dans Docker Hub.
Suivez les étapes suivantes en sélectionnant l’onglet correspondant à votre choix.
La liste déroulante Registre affiche les registres dans le même abonnement que votre application. Sélectionnez le registre souhaité.
Notes
Sélectionnez l’image et l’étiquette à déployer. Si vous le souhaitez, tapez la commande de démarrge dans le Fichier de démarrage.
Suivez l’étape suivante en fonction du type de conteneur :
App Service ajoute la chaîne du Fichier de démarrage à la fin de la commande docker run
(en tant que segment [COMMAND] [ARG...]
) lors du démarrage de votre conteneur.
App Service prend en charge l’intégration de CI/CD avec Azure Container Registry et Docker Hub. Pour l’activer, sélectionnez Activé dans Déploiement continu.
Notes
Si vous sélectionnez GitHub Actions dans Source, vous n’avez pas cette option, car CI/CD est géré directement par GitHub Actions. Au lieu de cela, vous voyez la section Configuration du workflow, dans laquelle vous pouvez cliquer sur Aperçu du fichier pour inspecter le fichier de workflow. Azure valide ce fichier dans le référentiel GitHub sélectionné afin de gérer les tâches de génération et de déploiement. Pour plus d’informations, consultez Fonctionnement de CI/CD avec GitHub Actions.
Quand vous activez cette option, App Service ajoute un webhook à votre référentiel dans Azure Container Registry ou Docker Hub. Votre référentiel publie sur ce webhook chaque fois que l’image sélectionnée est mise à jour avec docker push
. Le webhook provoque le redémarrage et l’exécution de votre application App Service docker pull
pour récupérer l’image mise à jour.
Notes
Pour garantir le bon fonctionnement du webhook, il est essentiel d’activer l’option Informations d’identification de publication d’authentification de base dans votre application web. L’échec de cette opération peut entraîner une erreur 401 non autorisée pour le webhook. Pour vérifier si les Informations d’identification de publication d’authentification de base sont activées, procédez comme suit :
Pour les autres registres privés, vous pouvez effectuer une publication manuelle sur le webhook ou en tant qu’étape dans un pipeline CI/CD. Dans URL du webhook, cliquez sur le bouton Copier pour accéder à l’URL du webhook.
Notes
La prise en charge des applications multiconteneurs (Docker Compose) est limitée :
docker push
vers n’importe quel référentiel du registre (y compris ceux qui ne sont pas référencés par votre fichier Docker Compose) déclenche le redémarrage de l’application. Vous souhaiterez peut-être modifier le webhook pour l’adapter à une étendue plus étroite.Cliquez sur Enregistrer.
Si vous choisissez GitHub Actions dans Source (voir Choisir une source de déploiement), App Service configure CI/CD comme suit :
docker push
pour le déploiement.Vous pouvez personnaliser le fournisseur de build GitHub Actions comme suit :
Cette configuration facultative remplace l’authentification par défaut par les profils de publication dans le fichier de workflow généré.
Générez un principal de service à l’aide de la commande az ad sp create-for-rbac dans Azure CLI. Dans l'exemple suivant, remplacez <subscription-id>, <group-name>, et <app-name> par vos propres valeurs. Enregistrez l’intégralité de la sortie JSON pour l’étape suivante, y compris le niveau supérieur {}
.
az ad sp create-for-rbac --name "myAppDeployAuth" --role contributor \
--scopes /subscriptions/<subscription-id>/resourceGroups/<group-name>/providers/Microsoft.Web/sites/<app-name> \
--json-auth
Important
Pour des raisons de sécurité, accordez l’accès minimal requis au principal du service. L’étendue dans l’exemple précédent est limitée à l’application App Service spécifique, et non à l’ensemble du groupe de ressources.
Dans GitHub, parcourez votre référentiel, puis sélectionnez Paramètres > Secrets > Ajouter un nouveau secret. Collez l’intégralité de la sortie JSON de la commande Azure CLI dans le champ de valeur du secret. Nommez le secret comme AZURE_CREDENTIALS
.
Dans le fichier de workflow généré par le Centre de déploiement, modifiez l’étape azure/webapps-deploy
avec du code similaire à l’exemple suivant :
- name: Sign in to Azure
# Use the GitHub secret you added
- uses: azure/login@v1
with:
creds: ${{ secrets.AZURE_CREDENTIALS }}
- name: Deploy to Azure Web App
# Remove publish-profile
- uses: azure/webapps-deploy@v2
with:
app-name: '<app-name>'
slot-name: 'production'
images: '<registry-server>/${{ secrets.AzureAppService_ContainerUsername_... }}/<image>:${{ github.sha }}'
- name: Sign out of Azure
run: |
az logout
Pour configurer le registre de conteneurs et l’image Docker, exécutez az webapp config container set.
az webapp config container set --name <app-name> --resource-group <group-name> --docker-custom-image-name '<image>:<tag>' --docker-registry-server-url 'https://<registry-name>.azurecr.io' --docker-registry-server-user '<username>' --docker-registry-server-password '<password>'
Pour configurer une application multiconteneur (Docker Compose), préparez un fichier Docker Compose localement, puis exécutez az webapp config container set avec le paramètre --multicontainer-config-file
. Si votre fichier Docker Compose contient des images privées, ajoutez des paramètres --docker-registry-server-*
, comme indiqué dans l’exemple précédent.
az webapp config container set --resource-group <group-name> --name <app-name> --multicontainer-config-file <docker-compose-file>
Pour configurer CI/CD à partir du registre de conteneurs sur votre application, exécutez la commande az webapp deployment container config avec le paramètre --enable-cd
. La commande génère l’URL du webhook, mais vous devez créer manuellement le webhook dans votre registre séparément. L’exemple suivant active CI/CD sur votre application, puis utilise l’URL du webhook dans la sortie pour créer le webhook dans Azure Container Registry.
ci_cd_url=$(az webapp deployment container config --name <app-name> --resource-group <group-name> --enable-cd true --query CI_CD_URL --output tsv)
az acr webhook create --name <webhook-name> --registry <registry-name> --resource-group <group-name> --actions push --uri $ci_cd_url --scope '<image>:<tag>'
Événements
Créer des applications intelligentes
17 mars, 21 h - 21 mars, 10 h
Rejoignez la série de rencontres pour créer des solutions IA évolutives basées sur des cas d’usage réels avec d’autres développeurs et experts.
S’inscrire maintenant