8465 shaares
203 private links
203 private links
Dans un context avec de nombreux conteneurs, il vaut mieux partager les ressources que de créer des binaires statiques. Pour cela, toutes les images doivent partir de la même image de base.
Les binaires statiques ont un avantage : ils vont être utilisés dans des environnements hétérogènes.
Nettoyage de binaires et compression:
- suppression des symboles de debug avec l'outil
strip
- mettre les assets en dehors des conteneurs 🤔
- des outils exotiques:
- dockerSlim qui semble supprimer les fichier inutilisés
- Distroless si la taille compte vraiment, sinon Alpine fonctionne très bien :D
- Bazel pour les gros builds, mais vraiment très gros. C'est un outil complexe !
- Nix (le package manager) en combinaison avec Nixery: Nixery, c’est un registre de conteneurs “magique” : il génère à la volée des manifests d’images de conteneurs qui référencent des layers qui correspondent aux objets du Nix store.
- Récupérer les certificats SSL des autorités:
COPY --from=alpine /etc/ssl /etc/ssl
pour copier le dossier SSL de l'image Alpine - Récupérer les fichiers de timezone:
COPY --from=debian /usr/share/zoneinfo /usr/share/zoneinfo
; puis vérifier avec un retour deTZ=Europe/Paris date
- Pour les fichiers concernant les UID/GID, notamment pour exécuter des apps de bureau dans des conteneurs, on peut les génßerer localement, ou dans le conteneur, ou faire un
bind-mount
depuis l'hôte (via les volumes dans le dockerfile ?). Cf: un blog post
Donc la meilleure solution ? Ça dépend !