finestra mobile: "build" richiede 1 argomento. Vedi 'docker build --help'


315

Cercando di seguire le istruzioni per creare un'immagine docker dal sito Web docker.

https://docs.docker.com/examples/running_redis_service/

questo è l'errore che ottengo seguendo le istruzioni sul documento e usando questo Dockerfile

FROM        ubuntu:14.04
RUN         apt-get update && apt-get install -y redis-server
EXPOSE      6379
ENTRYPOINT  ["/usr/bin/redis-server"]


sudo docker build -t myrepo/redis
docker: "build" requires 1 argument. See 'docker build --help'.

Come si risolve?

Risposte:


657

È necessario aggiungere un punto, ad esempio docker build -t mytag .significa che si utilizza il file Docker nella directory locale e se si utilizza docker 1.5 è possibile specificare un file Docker altrove, estrarre dall'aiuto della build docker-f, --file="" Name of the Dockerfile(Default is 'Dockerfile' at context root)


3
potresti per favore contrassegnare esattamente il comando: "docker build -t mytag". non
ho

6
@utente2915097 Non sono d'accordo. (punto) indica la directory locale, perché quando si utilizza l'opzione -f (--file), inserendo l'opzione. (punto) è ancora obbligatorio.
Andolsi ha scritto il

5
il . specifica il contesto della build
andolsi zied

35
La popolarità della domanda mostra quanto sia chiara la sintassi del comando docker non chiara ... Personalmente ho pensato che il punto significhi solo la fine della frase ...
Deluso

2
Ciao da docs.docker.com/get-started/part2/#apppy - Ero troppo cieco per vedere il. anche lì!
Alex Jansen,

31

Hai copiato il comando build da qualche altra parte (pagina web o qualche altro file)? Prova a digitarlo da zero.

Ho copiato un comando build da un tutorial AWS e l'ho incollato nel mio terminale e ho riscontrato questo errore. Mi stava facendo impazzire. Dopo averlo digitato a mano, ha funzionato! Guardando più da vicino e i miei precedenti comandi falliti, ho notato che il carattere "trattino" era diverso, era un carattere trattino più sottile e più lungo di quello che avevo se lo scrivessi da solo usando il tasto "meno / trattino".

Male:

sudo docker build -t pippo.

Buona:

sudo docker build -t pippo.

Riesci a vedere la differenza? .. Taglia e incolla è difficile.


22

Utilizzare il seguente comando

docker build -t mytag .

Nota che mytag e dot hanno uno spazio tra loro. Questo punto rappresenta l'attuale directory di lavoro.


17

inserisci qui la descrizione dell'immagineBasta fornire il punto (.) Alla fine del comando, incluso uno spazio.

esempio:

comando: docker build -t "lampeggio: v1".

Qui puoi vedere "lampeggio: v1", quindi uno spazio, quindi punto (.)

Questo è tutto.


17

Nel mio caso questo errore si stava verificando in una pipeline di Gitlab CI quando passavo più variabili env di Gitlab docker buildcon --build-argflag.

Si scopre che una delle variabili aveva uno spazio al suo interno che stava causando l'errore. È stato difficile da trovare poiché i registri della pipeline hanno appena mostrato il file $VARIABLE_NAME.

Assicurati di citare le variabili di ambiente in modo che gli spazi vengano gestiti correttamente.

Cambio da:

--build-arg VARIABLE_NAME=$VARIABLE_NAME

per:

--build-arg VARIABLE_NAME="$VARIABLE_NAME"

1
save my googling;)
Adiii,

Questo era esattamente il problema che avevo. Grazie mille!
phi

10


Hai bisogno di un DOT alla fine ...


Quindi per esempio:

$ docker build -t <your username>/node-web-app .

È un po 'nascosto, ma se presti attenzione a .alla fine ...


1
Mi hai salvato la giornata. Grazie.
PhatHV

3

È possibile creare un'immagine docker da un file chiamato file docker e denominato Dockerfile per impostazione predefinita. Ha una serie di comandi / istruzioni necessari nel contenitore della finestra mobile. Sotto il comando crea l'immagine con il tag più recente, Dockerfile dovrebbe essere presente in quella posizione (. Significa presente directory)

docker build . -t <image_name>:latest

È possibile specificare il Dockerfile tramite -f se il nome del file non è contenuto (Dockerfile) Sameple nel file Docker predefinito.

FROM busybox
RUN echo "hello world"

2

Nelle versioni precedenti di Docker sembra che sia necessario utilizzare questo ordine:

docker build -t tag .

e non

docker build . -t tag


1

Apri PowerShelland e segui queste istruzioni. Questo tipo di errore è in genere in Windows SO Quando si utilizza la compilazione dei comandi è necessaria un'opzione e un percorso.

Esiste questo tipo di errore perché non è stato specificato un percorso con il file Docker.

Prova questo:

C:\Users\Daniele\app> docker build -t friendlyhello C:\Users\Daniele\app\
  1. friendlyhello è il nome che assegni al tuo conteiner
  2. C: \ Users \ Daniele \ app \ è il percorso che contesta il tuo Dockerfile

se vuoi aggiungere un tag

C:\Users\Daniele\app> docker build -t friendlyhello:3.0 C:\Users\Daniele\app\

1

Nel caso in cui qualcuno stia riscontrando questo problema quando prova a taggare -tl'immagine e anche a crearla da un file NON nominato Dockerfile(cioè non usando semplicemente il .percorso), puoi farlo in questo modo:

docker build -t my_image -f my_dockerfile .

Si noti che la finestra mobile prevede una directory come parametro e il nome file come opzione.


0

Il mio problema era che Dockerfile.txt doveva essere convertito in un file eseguibile Unix. Una volta l'ho fatto quell'errore è scomparso.

Potrebbe essere necessario rimuovere la parte .txt prima di farlo, ma su un Mac vai al terminale e cd nella directory dove è il tuo Dockerfile e il tipo

chmod +x "Dockerfile"

E poi convertirà il tuo file in un file eseguibile Unix che può quindi essere eseguito dal comando build Docker.


0

Il seguente comando ha funzionato per me. Il file Docker è stato inserito nella cartella my-app-master.

docker build -f my-app-master / Dockerfile -t my-app-master.


-4

Formato comando build Docker

Nella tua PowerShell: c'è questo tipo di errore perché non hai specificato un percorso con il tuo Dockerfile.

Prova questo:

$ docker build -t friendlyhello:latest -f C:\\TestDockerApp\\Dockerfile.txt

friendlyhello è il nome che assegni al tuo contenitore e aggiungi la versione, basta usare : latest

-f C: \ TestDockerApp \ Dockerfile.txt - vuoi aggiungere un tag perché il comando build ha bisogno di un parametro o tag - DockerFile è un documento di testo quindi aggiungi esplicitamente l'estensione .txt

** Prova questo formato:

$ docker build -t friendlyhello:latest -f C:\\TestDockerApp\\Dockerfile.txt .**

1
Il comando che hai fornito dovrebbe fallire con lo stesso errore. È necessario includere un contesto di compilazione come argomento, spesso a .per indicare che la directory corrente deve essere inviata al motore docker come contesto di compilazione.
BMitch
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.