ここで見つけたコードを使用して、kvmでコンテナを実行しようとしました: https://github.com/jessfraz/dockerfiles/tree/master/kvm 新しいディレクトリを作成し、cd'dそれにdockerfileとstart.shファイルを作成しました。ビルドを指示すると、次のエラーメッセージが出力されました。
ビルドコンテキストをDockerデーモンに送信3.584kBデーモンからのエラー応答:現在のコンテキストにビルドステージがありません
これが何を意味するのかわからず、答えをグーグルで検索できませんでした。どんな助けも大歓迎です。
Dockerfileには次のものがありますか:FROM repo/image
最初の行として?作成元のdockerイメージを指定するのを忘れたときに、このエラーが発生しました。
「ソースイメージ」を作成している場合でも、FROM scratch
をdockerfileの最初の行として指定する必要があります。
これは通常、FROMコマンドの前に書き込まれるテキストが原因で発生します。 dockerfileのコメントを削除して、もう一度ビルドしてください。
問題は解決しました。コードを編集するためにdockerfileに行ったとき、誤って最初の行のコメントを外したことに気付きました。愚かな間違い、私は知っています。助けてくれてありがとう。
このメッセージは、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
...
docs.docker.comのドキュメント によると、Dockerfileの最初の非コメント行はFROM
行でなければなりません。ドキュメントを引用するには:
FROM
命令は、新しいビルドステージを初期化し、後続の命令に Base Image を設定します。そのため、有効なDockerfile
はFROM
命令で開始する必要があります。