"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment créer des binaires statiques dans Golang avec Docker Scratch : CGO_ENABLED=0 et -ldflags ?

Comment créer des binaires statiques dans Golang avec Docker Scratch : CGO_ENABLED=0 et -ldflags ?

Publié le 2024-11-06
Parcourir:906

 How to Create Static Binaries in Golang with Docker Scratch: CGO_ENABLED=0 and -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 de travail 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 de 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.

Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3