Gitlab

Bonnes pratiques Docker

Définir un utilisateur

Pour des raisons de sécurité, les images utilisant l’utilisateur root sont bannies du workflow: ne jamais laisser Docker lancer l’application avec l’uid root, il faut définir un utilisateur courant dans le fichier DockerFile qui sera utilisé pour créer l’image de l’application.

RUN useradd <username> --uid ${uid}
#copy files, run commands ...
USER <username>

Utiliser des images consolidées

Afin que l’image qui contient l’application puisse embarquer les dernières mises à jour de sécurité, celle-ci doit être construite à partir d’une autre image maintenue par Bearstech et disponible sur le docker hub.

Nous fournissons des images pour différents langages et leurs variantes de développement : Golang, Node, PHP, Python, Ruby, Java

Nous fournissons aussi les images de quelques services : Nginx et Redis

Pour qu’une application conteneurisée puisse utiliser les dernières mises à jour de sécurité, elle doit donc être rebuildée ET déployée régulièrement.

Volumes

L’utilisation du mot clé VOLUMES est à proscrire dans les Dockerfile. Les volumes ainsi créés ne sont pas sauvegardés. Si vous avez besoin d’utiliser des volumes, définissez les dans votre docker-compose.yml

Centralisation des logs applicatifs

Pour les applications conteneurisées, le workflow effectue le paramétrage d’une gestion centralisée des logs drivers de Docker. Ceci permet d’accéder de manière standard aux logs générés par les services qui ont été déployés en production.

Top