Docker Dockerfiles meilleures pratiques


Exemple

Opérations communes de groupe

Docker construit des images en tant que collection de calques. Chaque couche ne peut ajouter que des données, même si ces données indiquent qu'un fichier a été supprimé. Chaque instruction crée un nouveau calque. Par exemple:

RUN apt-get -qq update
RUN apt-get -qq install some-package

A quelques inconvénients:

  • Il va créer deux couches, produisant une image plus grande.
  • Utiliser apt-get update seul dans une instruction RUN entraîne des problèmes de mise en cache et, par la suite, les instructions d' apt-get install peuvent échouer . Supposons que vous modifiez ultérieurement apt-get install en ajoutant des paquets supplémentaires, puis que docker interprète les instructions initiales et modifiées comme étant identiques et réutilise le cache des étapes précédentes. En conséquence, la commande apt-get update n'est pas exécutée car sa version en cache est utilisée lors de la génération.

Au lieu de cela, utilisez:

RUN apt-get -qq update && \
    apt-get -qq install some-package

comme cela ne produit qu'une couche.

Mentionnez le mainteneur

C'est généralement la deuxième ligne du fichier Docker. Il indique qui est responsable et sera en mesure d'aider.

LABEL maintainer John Doe <john.doe@example.com>

Si vous le sautez, cela ne cassera pas votre image. Mais cela n’aidera pas non plus vos utilisateurs.

Être concis

Gardez votre fichier Dockerfile court. Si une configuration complexe est nécessaire, envisagez d'utiliser un script dédié ou de configurer des images de base.