l'éditeur php Strawberry vous présentera comment vider la goroutine du processus de point d'entrée du conteneur. Lors du développement d'applications conteneurisées à l'aide du langage Go, nous devons souvent comprendre et déboguer les goroutines en cours d'exécution. Le dumping de la goroutine du processus de point d'entrée du conteneur est une méthode de débogage courante, qui peut nous aider à analyser et à résoudre les problèmes de l'application. Dans cet article, nous expliquerons en détail comment utiliser les outils et techniques pertinents pour vider la goroutine du processus de point d'entrée du conteneur, et fournirons des étapes spécifiques et des exemples de code. Explorons ensemble ce sujet amusant et pratique !
J'ai un problème où l'un des conteneurs ne se termine pas lorsque l'application est arrêtée par docker-compose up
运行的应用程序。当通过 docker-compose stop
. Le conteneur exécute un processus écrit en Go, je souhaite donc vider la goroutine de ce processus pour voir où le processus est bloqué.
Je peux docker ps
查看容器,然后 docker exec -it <container-id> bash
进入容器,但是一旦我 kill -QUIT <process id>
, à la fin du processus, le conteneur s'arrête également, donc je ne peux pas obtenir le dump goroutine.
Comment obtenir un dump goroutine dans ce cas ?
Le conteneur est également arrêté, je ne peux donc pas récupérer le dump goroutine.
Je pense que vous pouvez obtenir des dumps goroutines à partir des journaux du conteneur, à condition :
docker-compose stop
Arrêtez d'exécuter des conteneurs sans les supprimer kill -quit <process id>
Videz la goroutine sur stderr. Voici la commande docker pour obtenir le journal du conteneur (-n
précise le nombre de lignes à afficher à partir de la fin du journal) :
$ docker logs -n 1000 [container-name]
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!