1
resposta

Docker build não aceita -f Dockerfile -t nome/node apenas docker build .

Olá tudo bom? Queria tentar entender o porquê quando eu tento rodar o build com a linha igual a do curso na minha pasta example com o código e um arquivo Dockerfile tenho o seguinte erro:

vagrant@ubuntu-bionic:~/example$ docker build -f Dockerfile -t isprogis/node
"docker build" requires exactly 1 argument.
See 'docker build --help'.

Usage:  docker build [OPTIONS] PATH | URL | -

Build an image from a Dockerfile

Porém quando eu dou apenas:

 docker build . -t isprogis/node
Sending build context to Docker daemon  6.144kB
Step 1/7 : FROM node:latest
 ---> d2850632b602
Step 2/7 : MAINTAINER Isabel Sprogis
 ---> Running in 7091e7e21bc7

Ele começa a buildar. Existe algum motivo para ele não conseguir encontrar o Dockerfile na pasta onde ele está? Tive problemas até mesmo tentando passar o path até o Dockerfile como /home/vagrant/example/Dockerfile. É algo que "resolvi" sozinha lendo o docker build --help porém não entendi o problema.

1 resposta

Olá Isabel, tudo bem?

Você pode usar a opção -f, mas também precisa adicionar o caminho para o contexto em que o build será executado no fim do comando.

Se o Dockerfile estiver em /home/vagrant/example/Dockerfile e você estiver no diretório em que os arquivos estão, você executa:

#repare que há um ponto no fim
docker build -f /home/vagrant/example/Dockerfile -t isprogis/node .

Por outro lado, digamos que o Dockerfile esteja em /home/vagrant/example/Dockerfile, mas o projeto, os arquivos que você vai usar pra construir a imagem estejam em /home/vagrant/projeto/, então você executaria:

docker build -f /home/vagrant/example/Dockerfile -t isprogis/node /home/vagrant/projeto/

Espero ter ajudado.