268 votes

Dockerfile: Construire et exécuter

Est-il possible de créer et d'exécuter Dockerfile à l'aide d'une seule commande, car il existe une seule commande docker build pour créer un fichier Dockerfile et docker run -it pour exécuter la commande.

Existe-t-il une combinaison de ces deux commandes pour faciliter la construction et l’exécution avec une seule commande?

449voto

potat Points 1

Si vous souhaitez éviter le marquage, docker build -q ne génère que le hachage final de l'image, que vous pouvez utiliser comme argument pour docker run :

 docker run -it $(docker build -q .)
 

Et ajoutez --rm à docker run si vous souhaitez que le conteneur soit automatiquement supprimé à sa sortie.

 docker run --rm -it $(docker build -q .)
 

274voto

Jonathon Reinhart Points 40535

Non, il n'y a pas de commande unique. Mais si vous marquez votre image au fur et à mesure que vous la construisez, il sera plus facile de l'exécuter:

 docker build -t foo . && docker run -it foo
 

7voto

tavlima Points 105

Si vous utilisez Makefile, je trouve cet extrait utile:

 build:
    @docker build . | tee .buildlog

bash: build
    @docker run --rm -it $(shell grep "Successfully built" .buildlog | cut -d ' ' -f 3) /bin/bash
 

Vous n'avez pas besoin de marquage, comme dans @ jonathon-reinhart, mais vous obtenez également le résultat de la construction.

1voto

robertmylne Points 2930

PC sous Windows

Créez un fichier run.bat . Ensuite, dans le fichier, ajoutez ceci:

 docker build -t foo . 
docker run -it foo
 

Pour exécuter le fichier en utilisant powershell ou cmd, procédez comme suit:

 ./run.bat
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X