docker: "construir" requiere 1 argumento. Ver 'docker build --help'


315

Intentando seguir las instrucciones para construir una imagen de Docker desde el sitio web de Docker.

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

este es el error que recibo siguiendo las instrucciones en el documento y usando este 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'.

¿Cómo resolverlo?

Respuestas:


657

docker build -t mytag .Debe agregar un punto, por ejemplo , significa que usa Dockerfile en el directorio local, y si usa docker 1.5 puede especificar un Dockerfile en otro lugar, extraerlo de la ayuda de Docker Build-f, --file="" Name of the Dockerfile(Default is 'Dockerfile' at context root)


3
¿podría marcar el comando exacto: "docker build -t mytag"? no vi el punto
nekperu15739

66
@ user2915097 No estoy de acuerdo con eso. (punto) significa directorio local, porque cuando se usa la opción -f (--file), se coloca el. (punto) sigue siendo obligatorio.
andolsi zied

55
el . especifica el contexto de la compilación
andolsi zied

35
La popularidad de las preguntas muestra cuán poco clara es la sintaxis del comando docker ... Personalmente, pensé que punto significa solo el final de la oración ...
Decepcionado el

2
Hola desde docs.docker.com/get-started/part2/#apppy : estaba demasiado ciego para ver el. allí tampoco!
Alex Jansen

31

¿Copió el comando de compilación desde otro lugar (página web o algún otro archivo)? Intenta escribirlo desde cero.

Copié un comando de compilación de un tutorial de AWS y lo pegué en mi terminal y recibí este error. Me estaba volviendo loco. Después de escribirlo a mano, ¡funcionó! Mirando más de cerca y mis comandos fallidos anteriores, noté que el carácter de "guión" era diferente, era un carácter de guión más delgado y más largo que el que tenía si lo escribía yo mismo usando la tecla "menos / guión".

Malo:

sudo docker build –t foo.

Bueno:

sudo docker build -t foo.

¿Puedes ver la diferencia? ... Cortar y pegar es difícil.


22

Usa el siguiente comando

docker build -t mytag .

Tenga en cuenta que mytag y dot tienen un espacio entre ellos. Este punto representa el directorio de trabajo actual.


17

ingrese la descripción de la imagen aquíSimplemente proporcione un punto (.) Al final del comando, incluido un espacio.

ejemplo:

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

Aquí puede ver "parpadeo: v1", luego un espacio y luego un punto (.)

Eso es.


17

En mi caso, este error estaba ocurriendo en una tubería de Gitlab CI cuando estaba pasando múltiples variables de env de Gitlab a docker buildcon --build-argbanderas.

Resulta que una de las variables tenía un espacio que estaba causando el error. Era difícil de encontrar ya que los registros de la tubería solo mostraban el $VARIABLE_NAME.

Asegúrese de citar las variables de entorno para que los espacios se manejen correctamente.

Cambiar de:

--build-arg VARIABLE_NAME=$VARIABLE_NAME

a:

--build-arg VARIABLE_NAME="$VARIABLE_NAME"

1
save my google
;;

Este fue exactamente el problema que tuve. ¡Muchas gracias!
phi

10


Necesitas un DOT al final ...


Así por ejemplo:

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

Está un poco escondido, pero si prestas atención al .final ...


1
Salvaste mi día. Gracias.
PhatHV

3

Puede crear una imagen de Docker a partir de un archivo llamado Docker File y denominado Dockerfile de forma predeterminada. Tiene un conjunto de comandos / instrucciones que necesita en su contenedor acoplable. El siguiente comando crea la imagen con la etiqueta más reciente, Dockerfile debe presentarse en esa ubicación (. Significa directorio actual)

docker build . -t <image_name>:latest

Puede especificar el Dockerfile a través de -f si el nombre del archivo no es el predeterminado (Dockerfile) Sameple Docker.

FROM busybox
RUN echo "hello world"

2

En versiones anteriores de Docker, parece que necesita usar este orden:

docker build -t tag .

y no

docker build . -t tag


1

Abra PowerShelland y siga estas instrucciones. Este tipo de error es típicamente en Windows SO. Cuando usa el comando build necesita una opción y una ruta.

Existe este tipo de error porque no ha especificado una ruta con su Dockerfile.

Prueba esto:

C:\Users\Daniele\app> docker build -t friendlyhello C:\Users\Daniele\app\
  1. friendlyhello es el nombre que le asignas a tu conteiner
  2. C: \ Users \ Daniele \ app \ es la ruta que contiene su Dockerfile

si quieres agregar una etiqueta

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

1

En caso de que alguien se encuentre con este problema cuando intente etiquetar -tla imagen y también compilarla desde un archivo que NO tenga nombre Dockerfile(es decir, que no utilice simplemente la .ruta), puede hacerlo así:

docker build -t my_image -f my_dockerfile .

Observe que Docker espera un directorio como parámetro y el nombre de archivo como opción.


0

Mi problema era que Dockerfile.txt necesitaba convertirse en un archivo ejecutable de Unix. Una vez que hice eso, ese error desapareció.

Es posible que deba eliminar la parte .txt antes de hacer esto, pero en una Mac vaya a la terminal y cd en el directorio donde está su Dockerfile y el tipo

chmod +x "Dockerfile"

Y luego convertirá su archivo a un archivo ejecutable de Unix que luego puede ser ejecutado por el comando de compilación Docker.


0

El siguiente comando funcionó para mí. El archivo Docker se colocó en la carpeta my-app-master.

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


-4

Formato de comando de compilación de Docker

En su PowerShell: Existe este tipo de error porque no ha especificado una ruta con su Dockerfile.

Prueba esto:

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

friendlyhello es el nombre que asigna a su contenedor y agrega la versión, solo use el : último

-f C: \ TestDockerApp \ Dockerfile.txt : desea agregar una etiqueta porque el comando de compilación necesita un parámetro o etiqueta: DockerFile es un documento de texto, por lo tanto, agregue explícitamente la extensión .txt

** Pruebe este formato:

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

1
El comando que ha proporcionado debe fallar con el mismo error. Debe incluir un contexto de compilación como argumento, a menudo .para indicar que el directorio actual debe enviarse al motor acoplable como contexto de compilación.
BMitch
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.