Fehlerantwort vom Daemon: Keine Build-Phase im aktuellen Kontext

98

Ich habe versucht, einen Container mit kvm auszuführen, indem ich den Code verwendet habe, den ich hier gefunden habe: https://github.com/jessfraz/dockerfiles/tree/master/kvm Ich habe ein neues Verzeichnis erstellt, eine CD darin erstellt und die Docker-Datei und erstellt start.sh Dateien. Als ich den Befehl zum Erstellen gab, gab es die folgende Fehlermeldung aus:

Senden des Build-Kontexts an den Docker-Daemon 3.584 KB Fehlerantwort des Daemons: Keine Build-Phase im aktuellen Kontext

Ich habe keine Ahnung, was dies bedeutet, und konnte keine Antwort googeln. Jede Hilfe wäre sehr dankbar.

user3710626
quelle

Antworten:

192

Hat Ihre Docker-Datei eine: FROM repo/image

Als erste Zeile? Ich habe diesen Fehler erhalten, als ich vergessen habe, das Docker-Image anzugeben, aus dem ich erstellt habe.

Selbst wenn Sie ein " FROM scratchQuellbild" erstellen, müssen Sie es als erste Zeile der Docker-Datei angeben.

Paul Dejean
quelle
19
Ich hatte dieses Problem, weil ich vor dem FROM-Befehl ENV für das Debian-Frontend eingestellt habe. Vielen Dank!
Adamconkey
6
@adamconkey Es gibt einen Sonderfall, in dem Sie ARG vor einem FROM haben dürfen. Das ist das einzige, was vor FROM sein darf. Hier sind einige weitere Informationen dazu: docs.docker.com/engine/reference/builder/…
Paul Dejean
Es ist nicht unbedingt die erste Zeile. Es muss nur die erste Zeile ohne Kommentar sein. Überprüfen Sie meine Antwort auf einen Link zur offiziellen Dokumentation mit einer Erklärung.
NoBrainer
@NoBrainer In der Computerprogrammierung bezieht sich der Begriff "erste Zeile" fast immer auf die erste Zeile ohne Kommentar.
Paul Dejean
@PaulDejean Docker ist Systemadministration, nicht "Computerprogrammierung". ;-)
NoBrainer
31

Dies geschieht normalerweise aufgrund des Textes, der vor dem FROM-Befehl geschrieben wurde. Versuchen Sie, die Kommentare in Ihrer Docker-Datei zu entfernen, und erstellen Sie sie erneut.

Als Referenz https://github.com/moby/buildkit/issues/164

Yonah Dissen
quelle
1
Dies war genau mein Problem, aus irgendeinem Grund verursachte sogar das, was ich auskommentiert hatte, diesen Fehler. Ich habe alles entfernt und funktioniert jetzt gut.
jamescampbell
Kommentare haben mir keine Probleme bereitet. Überprüfen Sie meine Antwort auf einen Link zur offiziellen Dokumentation mit einer Erklärung.
NoBrainer
13

Diese Meldung wird angezeigt, wenn Sie ENVvor dem Deklarieren eine Umgebungsvariable ( ) deklarieren FROM.

Beispielsweise:

# 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
...

Um dies zu beheben, tauschen Sie die Deklarationen so aus, dass alle Umgebungsvariablen danach festgelegt werden 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
...
Charlie
quelle
13

Gemäß der Dokumentation auf docs.docker.com muss die erste Zeile ohne Kommentar in Ihrer Docker-Datei die FROMZeile sein. So zitieren Sie die Dokumente:

Die FROMAnweisung initialisiert eine neue Erstellungsphase und legt das Basis-Image für nachfolgende Anweisungen fest. Als solches muss ein gültiger Dockerfilemit einer FROMAnweisung beginnen.

Klacks
quelle
12

Das Problem ist gelöst. Als ich zur Docker-Datei ging, um den Code zu bearbeiten, bemerkte ich, dass ich versehentlich die erste Zeile auskommentiert hatte. Dummer Fehler, ich weiß. Vielen Dank für die Hilfe.

user3710626
quelle