203 private links
Sur Go et ses binaires statiques
Et Alpine Linux ❤️
→ 5Mo, avec un environnement Unix GNU/Linux cependant complet
→ son package manager rapide: dpk
→ Alpine utilise musl à la place de GNU C en tant que bibliothèque C standard, et comme ces deux bibliothèques ne sont pas compatibles, il faut compiler le binaire avec musl: soit avec des images officielles qui ont des tags :alpine
, soit directement depuis l'image Alpine.
Exemple de dockerfile :
FROM alpine
RUN apk add build-base
COPY hello.c .
RUN gcc -o hello hello.c
FROM alpine
COPY --from=0 hello .
CMD ["./hello"]
Pour java, il faut mettre la main dans le cambouis.
Pour les langages interprétés, ça passe oklm... sauf si des bibliothèques externes sont utilisées: soit le build est très long, soit on cherche le compromis avec des images taggés :slim
. Puis mettre les mains dans le cambouis pour savoir laquelle d'Alpine ou celle taggée :slim
produit la plus petite image.
Pour Rust ❤️ , il y a rust:alpine
et les binaires s'exécutent bien avec alpine
. La documentation renseigne sur la génération de binaires statiques