Ik heb een Dockerfile die een Ubuntu-image moet bouwen. Maar wanneer ik ren
docker build -t ubuntu-test:latest ./Dockerfile
het toont de volgende fout op de console
kan context niet voorbereiden: context moet een map zijn: /Users/tempUser/git/docker/Dockerfile
Ik gebruik Mac OsX. Ik heb ook geprobeerd om sudo
te gebruiken. Niets werkt.
Antwoord 1, autoriteit 100%
Je moet in plaats daarvan naar de directoryverwijzen. U mag het dockerbestand niet specificeren.
docker build -t ubuntu-test:latest .
doet werk.
docker build -t ubuntu-test:latest ./Dockerfile
werkt niet.
Antwoord 2, autoriteit 51%
U kunt docker build ook uitvoeren met de optie -f
docker build -t ubuntu-test:latest -f Dockerfile.custom .
Antwoord 3, autoriteit 12%
Contexten begrijpen
De opdracht docker build
De basissyntaxis van het build-commando van docker is
docker build -t imagename:imagetag context_dir
De context
De context is een map en bepaalt wat het docker-buildproces te zien krijgt: Vanuit het oogpunt van Dockerfile wordt elk bestand context_dir/mydir/myfile
in uw bestandssysteem /mydir/myfile
in het Dockerbestand en dus tijdens het bouwproces.
Het dockerbestand
Als het dockerbestand Dockerfile
wordt genoemd en in de context leeft, zal het impliciet worden gevonden door de naamgevingsconventie.
Dat is mooi, want het betekent dat je de Dockerfile meestal onmiddellijk in elke docker-container kunt vinden.
Als je erop staat een andere naam te gebruiken, zeg dan “/tmp/mydockerfile”, dan kun je -f
als volgt gebruiken:
docker build -t imagename:imagetag -f /tmp/mydockerfile context_dir
maar dan zal het dockerbestand niet in dezelfde map staan of in ieder geval moeilijker te vinden zijn.
Antwoord 4, autoriteit 9%
Om een Dockerfile
op te geven tijdens het bouwen, kunt u het volgende gebruiken:
docker build -t ubuntu-test:latest - < /path/to/your/Dockerfile
Maar het zal mislukken als er een ADD
of COPY
commando is dat afhankelijk is van het relatieve pad. Er zijn veel manieren om een context
op te geven voor docker build
, u kunt verwijzen naar docs van docker buildvoor meer info.
Antwoord 5, autoriteit 2%
Ik heb hetzelfde probleem. Ik gebruik docker version:17.09.0-ce
.
Ik volg onderstaande stappen:
- Maak Docker-bestand en toegevoegde commando’s voor het maken van docker-afbeelding
- Ga naar de map waar we Dockfile hebben gemaakt
- voer onderstaande opdracht uit
$ sudo docker build -t ubuntu-test:latest .
Het probleem is opgelost en de afbeelding is gemaakt.
Opmerking: het build-commando is afhankelijk van de docker-versie en ook van de build-optie die we gebruiken. 🙂
Antwoord 6
Het is eenvoudig, telkens wanneer Docker build wordt uitgevoerd, wil Docker weten wat de naam van de afbeelding is, dus we moeten -t : doorgeven. Zorg er nu voor dat u zich in dezelfde map bevindt waar u uw Dockerfile hebt en voer
. uit
docker build -t <image_name>:<version> .
Voorbeeld
docker build -t my_apache:latest .
ervan uitgaande dat u zich in dezelfde map bevindt als uw Dockerbestand, anders geeft u de vlag -f en het Dockerbestand door.
docker build -t my_apache:latest -f ~/Users/documents/myapache/Dockerfile
Antwoord 7
Een van de redenen waarom ik een foutmelding kreeg, was de bestandsnaam, zorg ervoor dat de bestandsnaam is
Dockerbestand
Dus ik kwam erachter, ik hoop dat het iemand kan helpen.