web-dev-qa-db-ja.com

Dockerビルドは「コンテキストを準備できません:コンテキストはディレクトリである必要があります:/ Users / tempUser / git / docker / Dockerfile」

Dockerfileイメージを構築することになっているUbuntuがあります。しかし、私が実行するとき

docker build -t ubuntu-test:latest ./Dockerfile

コンソールに次のエラーが表示されます

コンテキストを準備できません:コンテキストはディレクトリである必要があります:/ Users/tempUser/git/docker/Dockerfile

Mac OsXを使用しています。 Sudoも試してみました。動作しません。

47
Damien-Amen

代わりにdirectoryを指す必要があります。 dockerfileを指定しないでください。

docker build -t ubuntu-test:latest .workを実行します。

docker build -t ubuntu-test:latest ./Dockerfile動作しないを実行します。

73
Damien-Amen

-fオプションを使用してdocker buildを実行することもできます

docker build -t ubuntu-test:latest -f Dockerfile.custom .

31
JakubKnejzlik

ビルド時にDockerfileを指定するには、次を使用できます。

docker build -t ubuntu-test:latest - < /path/to/your/Dockerfile

ただし、相対パスに依存するADDまたはCOPYコマンドがある場合は失敗します。 docker buildcontextを指定する方法は多数あります。詳細については、 dockerビルドのドキュメント を参照してください。

14
shizhz

Dockerビルドが実行されるときはいつでも、Dockerはイメージ名を知りたいので、-t:を渡す必要があります。 Dockerfileがあるディレクトリと同じディレクトリにいることを確認して実行してください

docker build -t <image_name>:<version> .docker build -t my_Apache:latest .は、Dockerfileと同じディレクトリにいると仮定します。そうでない場合は、-fフラグとDockerfileを渡します。

docker build -t my_Apache:latest -f ~/Users/documents/myapache/Dockerfile

1
Prashanth

コンテキストを理解する

docker buildコマンド

Dockerのビルドコマンドの基本構文は次のとおりです。

docker build -t imagename:imagetag context_dir

コンテキスト

コンテキストはディレクトリであり、Dockerビルドプロセスが表示する内容を決定します。Dockerfileの観点から、ファイルシステム内のすべてのファイルcontext_dir/mydir/myfileはDockerfile内の/mydir/myfileになり、したがってビルドプロセス中になります。 。

Dockerfile

DockerfileがDockerfileと呼ばれ、コンテキスト内に存在する場合、命名規則により暗黙的に検出されます。これはいいことです。というのは、通常、Dockerコンテナ内のDockerfileをすぐに見つけることができるからです。

「/ tmp/mydockerfile」と言う別の名前を使用する場合、次のように-tを使用できます。

docker build -t imagename:imagetag -f /tmp/mydockerfile context_dir

しかし、その後dockerfileはコンテナ内にないか、少なくとも見つけるのが難しくなります。

1
Lutz Prechelt

私は同じ問題に直面しています。 docker version:17.09.0-ceを使用しています。

以下の手順に従います。

  1. Dockerfileを作成し、Dockerイメージを作成するためのコマンドを追加しました
  2. Dockfileを作成したディレクトリに移動します
  3. 以下のコマンドを実行します$ Sudo docker build -t ubuntu-test:latest .

問題を解決し、イメージを作成しました。

注:ビルドコマンドは、使用しているビルドオプションだけでなく、Dockerバージョンにも依存します。 :)

0
Rajeev Rathor