Eu tenho um Dockerfile
que deve construir uma Ubuntu
imagem. Mas sempre que eu corro
docker build -t ubuntu-test:latest ./Dockerfile
Mostra o seguinte erro no console
incapaz de preparar o contexto: o contexto deve ser um diretório: / Users / tempUser / git / docker / Dockerfile
Estou no Mac OsX. Eu tentei sudo
também. Nada funciona.
docker
dockerfile
Damien-Amen
fonte
fonte
Você também pode executar o docker build com a
-f
opçãodocker build -t ubuntu-test:latest -f Dockerfile.custom .
fonte
docker build -t my-custom-name -f /path_to_my_docker_file/Dockerfile-abcd .
Para especificar um
Dockerfile
quando construir, você pode usar:Mas ele vai falhar se há
ADD
ouCOPY
comando que depende caminho relativo. Existem muitas maneiras de especificar umcontext
fordocker build
, você pode consultar os documentos do docker build para obter mais informações.fonte
docker build -t ubuntu:12.04 - < Dockerfile
Você deve estar na raiz do DockerfileEntenda os contextos
O
docker build
comandoA sintaxe básica do comando de construção do docker é
O contexto
O contexto é um diretório e determina o que o processo de compilação do docker verá: Do ponto de vista do Dockerfile, qualquer arquivo
context_dir/mydir/myfile
em seu sistema de arquivos se tornará/mydir/myfile
no Dockerfile e, portanto, durante o processo de compilação.O dockerfile
Se o dockerfile for chamado
Dockerfile
e residir no contexto, ele será encontrado implicitamente pela convenção de nomenclatura. Isso é bom, porque significa que geralmente você pode encontrar o Dockerfile em qualquer contêiner do docker imediatamente.Se você insiste em usar um nome diferente, diga "/ tmp / mydockerfile", você pode usar
-f
assim:mas o dockerfile não estará na mesma pasta ou pelo menos será mais difícil de encontrar.
fonte
É simples, sempre que o build do Docker é executado, o docker quer saber qual é o nome da imagem, então precisamos passar -t:. Agora certifique-se de estar no mesmo diretório onde tem o Dockerfile e execute
docker build -t <image_name>:<version> .
Exemplo,docker build -t my_apache:latest .
supondo que você esteja no mesmo diretório que seu Dockerfile, caso contrário, passe a sinalização -f e o Dockerfile.docker build -t my_apache:latest -f ~/Users/documents/myapache/Dockerfile
fonte
docker build -t my_apache:latest -f ~/Users/documents/myapache/Dockerfile
(observe a adição de um.
no final)Eu enfrento o mesmo problema. Estou usando
docker version:17.09.0-ce
.Eu sigo os passos abaixo:
$ sudo docker build -t ubuntu-test:latest .
Resolveu o problema e a imagem foi criada com sucesso.
Nota: o comando de construção depende da versão do docker, bem como da opção de construção que estamos usando. :)
fonte
Um dos motivos pelos quais recebi um erro foi o nome do arquivo, certifique-se de que o nome do arquivo seja Dockerfile. Então eu descobri, espero que possa ajudar alguém.
fonte