web-dev-qa-db-fra.com

Comment nommer Dockerfiles

Je ne sais pas comment nommer Dockerfiles. Beaucoup sur GitHub utilisent Dockerfile sans extension de fichier. Est-ce que je leur donne un nom et une extension? si oui quoi? Ou dois-je simplement les appeler Dockerfile?

64
Lloyd R. Prentice

Ne changez pas le nom du fichier de docker si vous souhaitez utiliser le générateur automatique sur hub.docker.com. N'utilisez pas d'extension pour les fichiers de menu fixe, laissez la valeur null. Le nom du fichier doit juste être: (pas d’extension du tout)

Dockerfile
72
tk_

Sur vscode, j'utilise dev.Dockerfile et il le reconnaît toujours correctement.

Donc, ma stratégie pour nommer plusieurs fichiers Dockerfiles dans le même dossier est la suivante: 

purpose.Dockerfile

29
Sahil Ahuja

Je pense que vous devriez avoir un répertoire par conteneur avec un fichier Docker (sans extension). Par exemple:

  /db/Dockerfile
  /web/Dockerfile
  /api/Dockerfile

Lorsque vous générez simplement le nom du répertoire, Docker trouvera le fichier Docker. par exemple:

docker build -f ./db .
23
garryp

Cela semble être vrai, mais personnellement, cela me semble être de piètre conception. Bien sûr, vous avez un nom par défaut (avec l'extension) mais vous autorisez d'autres noms et vous pouvez spécifier le nom du fichier de menu fixe pour les commandes.

Avoir une extension, c’est aussi agréable, car cela permet d’associer des applications à ce type d’extension. Lorsque je clique sur un fichier Docker dans MacOSX, il le traite comme un exécutable Unix et tente de l'exécuter.

Si les fichiers Docker avaient une extension, je pourrais dire au système d’exploitation de les démarrer avec une application particulière, par exemple. mon application d'éditeur de texte. Je ne suis pas sûr, mais le comportement actuel peut également être lié aux autorisations du fichier.

14
Ashley Aitken

Si vous souhaitez utiliser le générateur automatique sur hub.docker.com, il doit être Dockerfile. Donc là :)

14
Dirk Eddelbuettel

Est-ce que je leur donne un nom et une extension? si oui quoi?

Vous pouvez nommer vos fichiers Dock comme bon vous semble. Le nom de fichier par défaut est Dockerfile (sans extension) et son utilisation par défaut peut faciliter diverses tâches lorsque vous utilisez des conteneurs.

En fonction de vos besoins spécifiques, vous souhaiterez peut-être modifier le nom du fichier. Si vous construisez pour plusieurs architectures, par exemple, vous pouvez ajouter une extension indiquant l’architecture telle que l’a fait l’équipe resin.io pour le conteneur HAProxy avec leur exemple multi-conteneurs ARM :

Dockerfile.aarch64
Dockerfile.AMD64
Dockerfile.armhf
Dockerfile.armv7hf
Dockerfile.i386
Dockerfile.i386-nlp
Dockerfile.rpi

Dans l'exemple fourni, chaque fichier Dockerfile est construit à partir d'une image amont différente, spécifique à l'architecture. Le fichier Docker spécifique à utiliser pour la construction peut être spécifié à l'aide de l'option --file, -f lors de la construction de votre conteneur à l'aide de la ligne de commande.

6
Josh Habdas

Dockerfile est utile si vous n’avez qu’un seul fichier docker (par répertoire). Vous pouvez utiliser la norme de votre choix si vous avez besoin de plusieurs fichiers de menu fixe dans le même répertoire - si vous avez une bonne raison. Dans un projet récent, il y avait des fichiers AWS docker et des fichiers d'environnement de développement local, car les environnements différaient suffisamment:

DockerfileDockerfile.aws

3
ktamlyn

J'ai créé deux Dockerfiles dans le même répertoire,

# vi one.Dockerfile
# vi two.Dockerfile

pour construire à la fois l'utilisation de Dockerfiles,

# docker build . -f one.Dockerfile
# docker build . -f two.Dockerfile

Note: vous devriez être dans le répertoire de travail actuel.

0
Shivaraj Navalgund