web-dev-qa-db-ja.com

デーモンからのエラー応答:現在のコンテキストにビルドステージがありません

ここで見つけたコードを使用して、kvmでコンテナを実行しようとしました: https://github.com/jessfraz/dockerfiles/tree/master/kvm 新しいディレクトリを作成し、cd'dそれにdockerfileとstart.shファイルを作成しました。ビルドを指示すると、次のエラーメッセージが出力されました。

ビルドコンテキストをDockerデーモンに送信3.584kBデーモンからのエラー応答:現在のコンテキストにビルドステージがありません

これが何を意味するのかわからず、答えをグーグルで検索できませんでした。どんな助けも大歓迎です。

44
user3710626

Dockerfileには次のものがありますか:FROM repo/image

最初の行として?作成元のdockerイメージを指定するのを忘れたときに、このエラーが発生しました。

「ソースイメージ」を作成している場合でも、FROM scratchをdockerfileの最初の行として指定する必要があります。

103
Paul Dejean

これは通常、FROMコマンドの前に書き込まれるテキストが原因で発生します。 dockerfileのコメントを削除して、もう一度ビルドしてください。

参照用 https://github.com/moby/buildkit/issues/164

21
Yonah Dissen

問題は解決しました。コードを編集するためにdockerfileに行ったとき、誤って最初の行のコメントを外したことに気付きました。愚かな間違い、私は知っています。助けてくれてありがとう。

12
user3710626

このメッセージは、ENVを宣言する前に環境変数(FROM)を宣言すると表示されます。

例えば:

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

これを解決するには、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

docs.docker.comのドキュメント によると、Dockerfileの最初の非コメント行はFROM行でなければなりません。ドキュメントを引用するには:

FROM命令は、新しいビルドステージを初期化し、後続の命令に Base Image を設定します。そのため、有効なDockerfileFROM命令で開始する必要があります。

0
NoBrainer