J'ai un Dockerfile
qui est censé construire une Ubuntu
image. Mais chaque fois que je cours
docker build -t ubuntu-test:latest ./Dockerfile
Il montre l'erreur suivante sur la console
impossible de préparer le contexte: le contexte doit être un répertoire: / Users / tempUser / git / docker / Dockerfile
Je suis sur Mac OsX. J'ai essayé sudo
aussi. Rien ne marche.
docker
dockerfile
Damien-Amen
la source
la source
Vous pouvez également exécuter la construction de docker avec l'
-f
optiondocker build -t ubuntu-test:latest -f Dockerfile.custom .
la source
docker build -t my-custom-name -f /path_to_my_docker_file/Dockerfile-abcd .
Pour spécifier un
Dockerfile
when build, vous pouvez utiliser:Mais cela échouera s'il y a
ADD
uneCOPY
commande qui dépend du chemin relatif. Il existe de nombreuses façons de spécifier uncontext
fordocker build
, vous pouvez vous référer à la documentation de la construction de docker pour plus d'informations.la source
docker build -t ubuntu:12.04 - < Dockerfile
Vous devez être à la racine du DockerfileComprendre les contextes
le
docker build
commandeLa syntaxe de base de la commande build de docker est
Le contexte
Le contexte est un répertoire et détermine ce que le processus de construction du docker va voir: Du point de vue du Dockerfile, tout fichier
context_dir/mydir/myfile
de votre système de fichiers deviendra/mydir/myfile
dans le Dockerfile et donc pendant le processus de construction.Le dockerfile
Si le dockerfile est appelé
Dockerfile
et vit dans le contexte, il sera trouvé implicitement par convention de dénomination. C'est bien, car cela signifie que vous pouvez généralement trouver immédiatement le Dockerfile dans n'importe quel conteneur Docker.Si vous insistez pour utiliser un nom différent, dites "/ tmp / mydockerfile", vous pouvez utiliser
-f
comme ceci:mais alors le dockerfile ne sera pas dans le même dossier ou du moins sera plus difficile à trouver.
la source
C'est simple, chaque fois que la build de Docker est exécutée, docker veut savoir quel est le nom de l'image, nous devons donc passer -t:. Maintenant, assurez-vous que vous êtes dans le même répertoire où vous avez votre Dockerfile et exécutez
docker build -t <image_name>:<version> .
Exemple endocker build -t my_apache:latest .
supposant que vous êtes dans le même répertoire que votre Dockerfile, sinon passez le drapeau -f et le Dockerfile.docker build -t my_apache:latest -f ~/Users/documents/myapache/Dockerfile
la source
docker build -t my_apache:latest -f ~/Users/documents/myapache/Dockerfile
(notez l'ajout d'un.
à la fin)Je suis confronté au même problème. J'utilise
docker version:17.09.0-ce
.Je suis les étapes ci-dessous:
$ sudo docker build -t ubuntu-test:latest .
Il a résolu le problème et l'image créée avec succès.
Remarque: la commande de construction dépend de la version du docker ainsi que de l'option de construction que nous utilisons. :)
la source
L'une des raisons pour lesquelles j'obtiens une erreur était le nom du fichier.Assurez- vous que le nom du fichier est Dockerfile.Je l'ai donc compris, j'espère que cela pourrait aider quelqu'un.
la source