282 votes

Une erreur, "échec de la résolution avec le frontend dockerfile.v0"

J'essayais de construire mon image Docker pour ma Gatsby application. Chaque fois que j'exécute la commande docker build . -t gatsbyapp il me donne une erreur :

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

En attendant, mon Dockerfile est présenté ci-dessous :

FROM node:13

WORKDIR /app

COPY package.json .

RUN yarn global add gatsby-cli

RUN yarn install

COPY gatsby-config.js .

COPY .env .

EXPOSE 8000

CMD ["gatsby","develop","-H","0.0.0.0"]

2 votes

Je suis VTC cette question car elle nécessite plus d'attention. Il y a beaucoup de raisons pour lesquelles vous pouvez obtenir cette erreur, regardez les multiples réponses complètement différentes ci-dessous.

0 votes

Le VPN du bureau était le problème pour moi.

1 votes

Cette question nécessite plus de détails. Le fichier .env existe-t-il réellement ou non ?

310voto

Esteban Gatjens Points 11

J'ai rencontré ce problème après la mise à niveau vers la dernière version de Docker Desktop sur Mac. Résolu avec le commentaire sur cette question .

Solution : N'utilisez pas buildkit et cela fonctionne pour moi.

export DOCKER_BUILDKIT=0
export COMPOSE_DOCKER_CLI_BUILD=0

2 votes

Où puis-je mettre ces deux lignes de code

6 votes

@SaherElgendy, vous devez l'écrire dans le terminal macos.

0 votes

@AnSe Merci de m'avoir répondu, mais je suis sous Windows.

212voto

Luis Gouveia Points 599

J'ai eu le même problème et tout ce que j'ai eu à faire était de mettre en majuscule le nom du fichier de configuration Docker :

dockerfile > n'a pas fonctionné

Dockerfile > a fonctionné

18 votes

Si vous ne spécifiez pas de fichier docker avec l'option -f, il recherche le fichier par défaut "Dockerfile" dans le chemin actuel. Avec "docker build -f dockerfile" vous pouvez choisir quel fichier est le fichier docker

1 votes

Cela m'a mis sur la bonne voie. Windows avait ajouté ".txt" à mon Dockerfile. Je l'ai supprimé et le problème est résolu.

0 votes

C'est une bonne pratique de toujours utiliser -f ./Dockerfile dans la commande de construction

68voto

jeffresc Points 365

Ce n'est probablement pas le problème rencontré par le PO, mais j'ai eu ce problème en essayant de construire mon conteneur fonctionnant à l'intérieur. Sous-système Windows pour Linux (WSL) (Debian WSL2), juste après avoir fraîchement installé Docker Compose et tout ce que j'avais à faire était de fermer le terminal (Debian) et de le rouvrir et mon problème était résolu.

4 votes

Quel terminal et quelle fenêtre ?

2 votes

Oui, il serait utile d'avoir plus d'explications sur ce point, j'utilise wsl et cela fonctionne dans une vm, mais pas dans wsl.

2 votes

Dans un hôte Windows, WSL (Windows Subsystem for Linux) permet d'exécuter des commandes basées sur Linux. Cela se fait en exécutant des commandes à partir d'un shell (semblable à Linux) dans Windows. J'ai eu le même problème. Fermer le shell et l'ouvrir à nouveau l'a résolu.

15voto

FooBar Points 1881

Dans mon cas, j'ai essayé de copier un dossier. wp-content depuis mon répertoire actuel, à l'intérieur de l'image Docker que je construisais. Comme ça :

FROM wordpress:latest

# Copy wp-content
COPY ./wp-content/ ./var/www/html/wp-content/

Cependant, j'ai remarqué que j'avais un .dockerignore qui a été explicitement indiqué d'ignorer wp-content .

Quand j'ai enlevé wp-content/ de .dockerignore ça a bien marché.

0 votes

J'avais un ignore all * dans le fichier .dockerignore, je l'ai supprimé et tout a fonctionné. Merci.

10voto

Tudor Points 906

Désactiver le macOS v11 (Big Sur) de virtualisation :

Enter image description here

1 votes

Haha GREAT :D ça marche pour moi !

3 votes

MISE À JOUR : la dernière mise à jour de Docker corrige ce problème pour moi.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X