web-dev-qa-db-fra.com

Réponse d'erreur du démon: aucune étape de construction dans le contexte actuel

J'essayais d'exécuter un conteneur avec kvm, en utilisant le code trouvé ici: https://github.com/jessfraz/dockerfiles/tree/master/kvm J'ai créé un nouveau répertoire, cd'd et créé les fichiers dockerfile et start.sh. Lorsque j'ai donné l'ordre de construire, le message d'erreur suivant a été généré:

Envoi du contexte de construction au démon Docker 3.584kB Réponse d'erreur du démon: aucune étape de construction dans le contexte actuel

Je n'ai aucune idée de ce que cela signifie et je ne pouvais pas donner une réponse à Google. Toute aide serait grandement appréciée.

44
user3710626

Votre fichier de docker a-t-il un: FROM repo/image

En première ligne? J'ai eu cette erreur lorsque j'ai oublié de spécifier l'image du menu fixe à partir de laquelle je construisais.

Même si vous construisez une "image source", vous devez toujours spécifier FROM scratch en tant que première ligne du fichier docker.

103
Paul Dejean

Cela se produit généralement à cause du texte écrit avant la commande FROM. Essayez de supprimer les commentaires dans votre fichier docker et de générer à nouveau.

Pour référence https://github.com/moby/buildkit/issues/164

21
Yonah Dissen

Le problème est résolu. Quand je suis allé à dockerfile pour éditer le code, j'ai remarqué que je ne mettais pas en commentaire la première ligne par inadvertance. Erreur stupide, je sais. Merci à vous deux pour l'aide.

12
user3710626

Ce message apparaît lorsque vous déclarez une variable d'environnement (ENV) avant de déclarer FROM.

Par exemple:

# Define variables.
ARG PORT
ENV SERVER_PORT=$PORT

# Install minimal Python 3.
FROM python:3.7-Alpine

# Install Python requirements.
COPY requirements.txt /
RUN pip install -r /requirements.txt

# Copy app source code.
COPY src/ /app
...

Pour résoudre ce problème, échangez les déclarations de sorte que les variables d'environnement soient définies après FROM.

# Install minimal Python 3.
FROM python:3.7-Alpine

# Define variables.
ARG PORT
ENV SERVER_PORT=${PORT}

# Install Python requirements.
COPY requirements.txt /
RUN pip install -r /requirements.txt

# Copy app source code.
COPY src/ /app
...
3
Charlie

Selon la documentation sur docs.docker.com , la première ligne sans commentaire de votre fichier Docker doit être la ligne FROM. Pour citer les docs:

L'instruction FROM initialise une nouvelle étape de construction et définit Image de base pour les instructions suivantes. En tant que tel, un Dockerfile valide doit commencer par une instruction FROM.

0
NoBrainer