Je suis capable de créer un Dockerfile comme
docker build -t deepak/ruby .
Mais pour un Dockerfile qui n'est pas nommé Dockerfile
# DOCKER-VERSION 0.4.8
FROM deepak/ruby
MAINTAINER Deepak Kannan "[email protected]"
RUN ./bin/rails s
disons qu'il s'appelle avec Dockerfile.app
qui nous construisons
docker build -t deepak/app Dockerfile.app
alors j'obtiens l'erreur
Uploading context 0 bytes
Error build: EOF
EOF
docker build --help
il y a une ligne où vous pouvez trouver ce que vous cherchez: -f, --file string Nom du Dockerfile (par défaut est 'PATH / Dockerfile')Réponses:
Notez qu'il y a un point
.
à la fin des deux commandes.Ou avec un tag:
la source
docker build -f Dockerfile.consumer
me donne une erreur "docker build" nécessite exactement 1 argument. Voir 'docker build --help'. Utilisation: docker build [OPTIONS] PATH | URL | -.
) à la fin de la commande ci-dessus?.
n'est pas une chose obligatoire. La commande build prend deux arguments à savoir. chemin versDockerfile
& chemin vers lecontext
répertoire. Alors, on peut le fairedocker build -t mysupertag -f ./foo/Dockerfile ./foo
Cela marche
Documentation de construction de Docker
la source
Le dernier paramètre de la construction de docker est le chemin de construction, lorsque vous le placez,
.
cela signifie qu'il s'agit du chemin où vous trouverez le fichierDockerfile
. Lorsque vous le modifiez, ilDockerfile.app
essaiera de rechercherDockerfile.app/Dockerfile
, ce qui n'est pas correct.Je ne sais pas si cela fonctionnera toujours, mais vous étiez capable de le faire auparavant.
Essayez cela et voyez si cela aide, sinon, ouvrez peut-être un problème de docker pour ajouter cette fonctionnalité ou mettez à jour la documentation sur la façon d'utiliser un Dockerfile avec un nom différent.
Plus d'informations ici: http://docs.docker.io/en/latest/commandline/command/build/
la source
docker build - < Dockerfile
ne me permettra pas d'ajouter un fichier local. Mais j'ai essayé et cela fonctionneEssayez 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:
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:la source
Vous pouvez également y parvenir en utilisant docker-compose.
Dans votre docker-compose.yml sous la section build, vous pouvez spécifier le répertoire dans lequel vous stockez votre dockerfile et son autre nom comme suit:
docker-composer
la source
Supposons que vous avez correctement installé la boîte à outils docker, y compris docker-compose et docker-machine . C'est mon docker-compose.yml
Et c'est sous Dockerfile
Assurez-vous que ces fichiers se trouvent précisément sous le dossier racine. Lorsque vous exécutez docker-compose up, vous allez créer une image pour le Web.
la source
Mon cas est dans le
/tmp
répertoire et il y a beaucoup de fichiers et docker essayez avec d'autres fichiers bien que je passe le-f <Dockerfile.foo>
La solution la plus propre et la plus simple (pour moi) est (lire les
dockerfeed
réponses ci-dessus):la source
L'utilisateur Windows doit essayer la commande ci-dessous:
par exemple :
la source