Im essayant d'exécuter google-chrome - sans tête dans un conteneur Docker en tant qu'utilisateur non root pour exécuter certains tests. Chaque fois que j'essaie de le démarrer, il génère l'erreur suivante:
google-chrome - sans tête
Échec de déplacement vers le nouvel espace de noms: espaces de noms PID pris en charge, espace de noms réseau pris en charge, mais échoué: errno = Opération non autorisée Échec de génération de minidump.Instruction illégale
C'est un conteneur docker fonctionnant dans le cluster k8s. Le système d'exploitation est Ubuntu 16.04.
Les espaces de noms sont activés, l'utilisateur n'est pas root
Je ne veux pas utiliser l'option --no-sandbox car c'est un problème de sécurité.
Je ne peux pas utiliser Docker Run --security-opt = syscomp: non confiné car il est déployé à l'aide de Helm.
Existe-t-il une autorisation système que je dois configurer pour chrome dans le conteneur lui-même?
Après des recherches approfondies sur Internet, je pense avoir trouvé la réponse:
Sandboxing Pour des raisons de sécurité, Google Chrome n'est pas en mesure de fournir le sandboxing lorsqu'il s'exécute dans l'environnement basé sur un conteneur. Pour utiliser Chrome dans l'environnement basé sur un conteneur, passez l'indicateur --no-sandbox à l'exécutable chrome
Il semble donc qu'il n'y ait pas de meilleure solution que --no-sandbox pour moi, même si ce n'est pas très sécurisé, il y a des gens sur Internet qui prétendent qu'il est toujours sûr d'utiliser "--no-sandbox" comme son fonctionnement dans un conteneur qui est protégé de toute façon.