Maison > Article > développement back-end > Comment créer des binaires statiques dans Golang avec Docker Scratch : CGO_ENABLED=0 et -ldflags ?
Drapeaux pour créer des binaires statiques dans Golang
Lors de la construction d'un binaire statique dans Golang à l'aide de la base scratch Docker, il est essentiel d'inclure à la fois CGO_ENABLED =0 et -ldflags '-extldflags "-static"'. Bien que les deux options puissent sembler redondantes, elles jouent des rôles distincts dans la réalisation de binaires statiques.
CGO_ENABLED=0
Cet indicateur désactive l'utilisation du code C dans le runtime Go. CGO (C Go) permet de s'interfacer avec le code C dans les programmes Go. En définissant CGO_ENABLED=0, vous empêchez Go de tenter de se connecter à des bibliothèques C, garantissant ainsi que le binaire construit est autosuffisant.
-ldflags '-extldflags "-static"'
Cet indicateur indique à l'éditeur de liens d'utiliser l'option -static lors de la liaison de bibliothèques externes. -static indique à l'éditeur de liens d'inclure toutes les dépendances de manière statique dans le binaire, plutôt que de compter sur leur présence dans l'environnement d'exécution. Cela élimine le besoin de recherches dans la bibliothèque d'exécution et rend le binaire indépendant de la disponibilité de la bibliothèque externe.
En combinant les deux indicateurs, vous vous assurez que le binaire construit est entièrement statique, contenant à la fois le runtime Go et toutes les dépendances externes nécessaires au sein. son code exécutable. Cela garantit que le binaire peut être exécuté dans n'importe quel environnement sans nécessiter de composants d'exécution supplémentaires ni de liaison dynamique.
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!