Essayez dockerfeed . Il utilise la fonction docker pour créer un contexte via stdin. J'ai écrit le script pour répondre exactement à votre problème auquel je faisais face.
Pour remplacer un Dockerfile par un autre, procédez comme suit:
dockerfeed -d Dockerfile.app . | docker build -t deepak/ruby -
Et voilà. Dockerfeed fait la même chose que docker build
. Il emballe la source avec son Dockerfile mais vous permet d'échanger l'ancien Dockerfile avec celui souhaité. Aucun fichier n'est créé dans le processus, aucune source n'est modifiée. L'archive tar générée est dirigée vers le docker, qui à son tour l'envoie au démon docker.
Mise à jour:
il s'agissait d'une réponse valide à l'époque où aucun -f
commutateur n'était disponible. Avec la version 1.5 de docker, cette option a été introduite. Vous pouvez maintenant créer un fichier Docker différent comme celui-ci:
docker build -f other-Dockerfile .