Comment résoudre un échec de déploiement pour un composant AWS IoT Greengrass qui exécute un conteneur Docker ?

Lecture de 2 minute(s)
0

Un composant qui exécute un conteneur Docker n'a pas pu être déployé sur AWS IoT Greengrass Core version 2, et je souhaite résoudre ce problème.

Brève description

Un échec de déploiement pour un composant AWS IoT Greengrass qui exécute un conteneur Docker est généralement dû à un problème d’autorisation.

Voici un exemple de message d'erreur relatif à l'échec du déploiement d'un composant :

com.example.RaspberryDockerComponent : stderr. autorisation refusée lors de la tentative de connexion au socket du démon Docker sous unix : ///var/run/docker.sock : Publiez « http://%2Fvar%2Frun%2Fdocker.sock/v1.24/images/load?quiet=1 » : composez unix /var/run/docker.sock : connect : autorisation refusée. {scriptName=services.com.example.RaspberryDockerComponent.lifecycle.Install.Script, serviceName=com.example.RaspberryDockerComponent, currentState=NEW}

Résolution

Pour pouvoir déployer un composant AWS IoT Greengrass qui exécute un conteneur Docker, modifiez l'une des autorisations suivantes :

  • (Recommandé) Configurez le conteneur Docker pour qu'il s'exécute pour les utilisateurs qui ne sont pas de type root ou administrateur.
  • Accordez des autorisations root ou administrateur à l'utilisateur qui déploie le composant.

Si un utilisateur reçoit une erreur de refus d'autorisation, il doit être ajouté au groupe Docker par un administrateur. En tant que membre du groupe Docker, l'utilisateur pourra alors exécuter des commandes sans privilèges d'administrateur.

Pour ajouter des autorisations utilisateur, procédez comme suit :

  1. Pour ajouter ggc_user au groupe Docker, exécutez la commande suivante :

    sudo usermod -aG docker ggc_user

    Remarque : dans votre commande, vous devez remplacer ggc_user par votre utilisateur qui n’est pas de type root.

  2. Exécutez la commande suivante pour redémarrer AWS IoT Greengrass afin de mettre à jour les autorisations utilisateur :

    systemctl restart greengrass
  3. Redéployez le composant, puis vérifiez que l'utilisateur peut exécuter des commandes.

Informations connexes

Exécution d’un conteneur Docker

AWS OFFICIEL
AWS OFFICIELA mis à jour il y a 10 mois
Aucun commentaire