Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save juniormartinxo/8a6f19fb678a89b07a6ebcf23af67611 to your computer and use it in GitHub Desktop.
Save juniormartinxo/8a6f19fb678a89b07a6ebcf23af67611 to your computer and use it in GitHub Desktop.

Falha ao resolver com frontend dockerfile.v0

Neste artigo, exploramos o motivo por trás do erro " falha ao resolver com o frontend dockerfile.v0 " e apresentamos várias maneiras (5) de corrigi-lo. Este erro está relacionado ao componente Buildkit e LLB do Docker.

Índice:

O erro: falha ao resolver com frontend dockerfile.v0

  • Correção 1: desativar o Buildkit do Docker
  • Correção 2: verifique se o Dockerfile está nomeado corretamente
  • Correção 3: especifique o nome do arquivo em docker-compose.yml
  • Correção 4: Excluir a semente do token
  • Correção 5: desative o Buildkit nas configurações

Nota final

O erro a seguir resume o caso desse erro:

APONTAR DETALHES SOBRE O ERRO

Erro: falha ao resolver com frontend dockerfile.v0

Variantes do erro:

Falha ao calcular a chave do cache: /.env não encontrado: não encontrado erro do remetente: contexto cancelado erro rpc: code = Desconhecido desc = falha ao analisar e mais.

Origem do erro: Componente Modcache, Buildkit ou LLB no Docker

Quando o erro vem? Ao criar um arquivo do Docker

Número de correções possíveis: 5

O erro: falha ao resolver com frontend dockerfile.v0

Ao criar um Docker usando o comando a seguir, você pode encontrar um erro específico que atuará como um bloqueador.

docker build . -t opengenus

A seguir está o erro que você pode obter, dependendo do seu ambiente:

failed to solve with frontend dockerfile.v0: failed to build LLB:
failed to compute cache key: "/.env" not found: not found

OU

failed to solve with frontend dockerfile.v0: failed to build LLB:
error from sender: context canceled

Isso pode ser atribuído a um problema conhecido com o Modcache ou Buildkit no sistema Docker. Pode haver outras fontes desse erro e, como apresentamos várias soluções.

  • LLB significa Low Level Build e é um formato binário usado internamente pelo Docker. Ele usa uma estrutura de dados de gráfico.
  • Frontend é o componente no Docker que converte o formato de compilação do Docker definido para LLB.
  • O erro acontece nesta etapa.

Os seguintes componentes são a fonte deste erro:

  • Nuildkit
  • LLB
  • Frontend (ocorre um erro nesta etapa)

Correção 1: desativar o Buildkit do Docker

Buildkit é um novo utilitário no Docker que substitui o construtor legado. Possui um recurso para reutilizar dockerfiles para desempenho ideal e lidar com situações complexas. Foi observado que o utilitário não funciona bem com todos os arquivos docker herdados e, portanto, o erro ocorrerá. A correção é desabilitar o Buildkit usando as duas variáveis ​​de ambiente a seguir:

export DOCKER_BUILDKIT=0
export COMPOSE_DOCKER_CLI_BUILD=0

Depois disso, tente construir o Docker novamente e o erro será corrigido:

docker build . -t opengenus

Dependendo do ambiente do sistema, se essa correção não funcionar, vá para a próxima correção. Você não precisa reverter as alterações nesta correção.

Correção 2: verifique se o Dockerfile está nomeado corretamente

Certifique-se de que o arquivo docker seja nomeado como " Dockerfile " exatamente e não como outras variantes como "DockerFile", "dockerfile" e outros.

O comando docker busca esse arquivo diferenciando maiúsculas de minúsculas e, se for nomeado incorretamente, o comando docker não consegue encontrar o arquivo de configuração e, portanto, o erro pode ocorrer.

Correção 3: especifique o nome do arquivo em docker-compose.yml

Se a correção acima não funcionar, podemos tentar especificar o nome do arquivo Docker no arquivo docker-compose.yml para garantir que o Docker selecione o arquivo correto superando o componente Modcache.

Por padrão, docker-compose.yml terá a seguinte aparência:

version: "3"
...
    build:
      context: ../.
      dockerfile: .

Deve ser atualizado como:

version: "3"
...
    build:
      context: ../.
      dockerfile: Dockerfile

Observe a última linha onde o nome do arquivo é especificado.

Correção 4: Excluir a semente do token

Se você estiver usando o MacOS e receber este erro:

failed to solve with frontend dockerfile.v0: failed to create LLB definition: 
rpc error: code = Unknown desc = failed to parse 
/Users/opengenus/.docker/.token_seed: unexpected end of JSON input

A correção simples é excluir os 2 arquivos a seguir no diretório /Users/opengenus/.docker/:

  • .token_seed
  • .token_seed.lock

Isso iniciará uma nova compilação, ignorando os componentes em cache das compilações anteriores do Docker com falha.

Correção 5: desative o Buildkit nas configurações

Na Correção 1, tentamos desabilitar o Buildkit por meio de variáveis ​​de ambiente. Em alguns casos, quando o Docker é usado em um sistema Desktop executando Windows ou MacOS, precisamos desativá-lo nas configurações.

Desabilite o buildkit na configuração JSON "Docker Engine" (no Docker no sistema desktop). As etapas são as seguintes:

  • Abra os aplicativos do Docker Desktop
  • Vá para as configurações
  • Vá para "Mecanismo Docker"
  • Atualize o valor true para buildkit para false na seção de recursos.
# Change this line
"features": { buildkit: true}
# to
"features": { buildkit: false}

Isso deve finalmente corrigir o erro e você pode prosseguir com a criação do arquivo Docker.

Nota final

O Docker é uma ferramenta importante com vários componentes que podem não funcionar bem com arquivos legados do Docker. Resolver esses erros e continuar a criar arquivos do Docker é fácil se você encontrar a correção certa, conforme apresentado neste artigo no OpenGenus.

Com este artigo da OpenGenus, você deve ter a ideia completa de como resolver este erro do Docker com sucesso.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment