docker:「build」には1つの引数が必要です。「docker build --help」を参照してください


315

Docker WebサイトからDockerイメージを構築するための指示に従ってください。

https://docs.docker.com/examples/running_redis_service/

これは、ドキュメントの指示に従い、このDockerfileを使用すると表示されるエラーです

FROM        ubuntu:14.04
RUN         apt-get update && apt-get install -y redis-server
EXPOSE      6379
ENTRYPOINT  ["/usr/bin/redis-server"]


sudo docker build -t myrepo/redis
docker: "build" requires 1 argument. See 'docker build --help'.

どのように解決しますか?

回答:


657

ドットを追加する必要がありdocker build -t mytag .ます。たとえば、ローカルディレクトリのDockerfileを使用することを意味します。docker1.5を使用する場合は、他の場所でDockerfileを指定でき、docker buildのヘルプから抽出します。-f, --file="" Name of the Dockerfile(Default is 'Dockerfile' at context root)


3
コマンド「docker build -t mytag」を正確にマークしてください。ドットが見えなかった
nekperu15739

6
@ user2915097同意しません。(ドット)は、-f(--file)オプションを使用するときに。(ドット)は引き続き必須です。
Andolsiは17

5
。ビルドのコンテキストを指定します
andolsiは

35
質問の人気度は、Dockerコマンドの構文が不明確であることを示しています...個人的には、ドットは文の終わりを意味するだけだと思っていました...
失望した

2
docs.docker.com/get-started/part2/#apppyからこんにちは。そこにも!
Alex Jansen

31

他の場所(ウェブページまたは他のファイル)からビルドコマンドをコピーしましたか?最初から入力してみてください。

AWSチュートリアルからビルドコマンドをコピーしてターミナルに貼り付けたところ、このエラーが発生しました。それは私を夢中にさせていました。手で入力した後、うまくいきました!以前に失敗したコマンドをよく見ると、「ダッシュ」文字が異なることに気付きました。「マイナス/ダッシュ」キーを使用して自分で入力した場合よりも、細く長いダッシュ文字でした。

悪い:

sudo docker build –t foo。

良い:

sudo docker build -t foo。

違いがわかりますか?..カットアンドペーストは難しいです。


22

次のコマンドを使用します

docker build -t mytag .

mytagとdotの間にはスペースがあることに注意してください。このドットは、現在の作業ディレクトリを表します。


17

ここに画像の説明を入力してくださいコマンドの最後に1つのスペースを含めて、ドット(。)を指定するだけです。

例:

コマンド:docker build -t "blink:v1"。

ここでは、「blink:v1」、スペース、ドット(。)の順に表示されています。

それでおしまい。


17

私の場合docker build--build-argフラグを使用して複数のGitlab env変数を渡していたときに、Gitlab CIパイプラインでこのエラーが発生していました。

ことが判明した変数の一つは、その中のスペースでしたエラーが発生していました。パイプラインのログがを示して$VARIABLE_NAMEいるだけなので、見つけるのは困難でした。

スペースが正しく処理されるように、環境変数を引用符で囲んでください。

から変更する:

--build-arg VARIABLE_NAME=$VARIABLE_NAME

に:

--build-arg VARIABLE_NAME="$VARIABLE_NAME"

1
私のグーグルを保存します;)
Adiii

これはまさに私が抱えていた問題でした。どうもありがとうございました!
ファイ

10


最後にDOTが必要です...


だから例えば:

$ docker build -t <your username>/node-web-app .

少し隠されていますが.、最後に注意を払えば...


1
あなたは私の日を救った。ありがとうございます。
PhatHV 2018

3

デフォルトでdocker fileという名前のDockerfileという名前のファイルからdockerイメージを構築できます。Dockerコンテナで必要なコマンド/命令のセットがあります。以下のコマンドは、latestタグのイメージを作成します。Dockerfileはその場所に存在する必要があります(。は存在するディレクトリを意味します)

docker build . -t <image_name>:latest

ファイル名がデフォルト(Dockerfile)Sameple Dockerファイルの内容でない場合は、-fを使用してDockerfileを指定できます。

FROM busybox
RUN echo "hello world"

2

古いバージョンのDockerでは、次の順序を使用する必要があるようです。

docker build -t tag .

ではなく

docker build . -t tag


1

PowerShellを開き、これらの指示に従ってください。このタイプのエラーは通常Windows SO にあります。コマンドビルドを使用する場合、オプションとパスが必要です。

Dockerfileへのパスを指定していないため、このタイプのエラーがあります。

これを試して:

C:\Users\Daniele\app> docker build -t friendlyhello C:\Users\Daniele\app\
  1. friendlyhelloは、コンテナーに割り当てる名前です。
  2. C:\ Users \ Daniele \ app \は、Dockerfileを含むパスです

タグを追加したい場合

C:\Users\Daniele\app> docker build -t friendlyhello:3.0 C:\Users\Daniele\app\

1

-t画像にタグを付け、名前のないファイルからDockerfile(つまり、単に.パスを使用しないで)ビルドしようとしたときに誰かがこの問題に遭遇した場合、次のように行うことができます。

docker build -t my_image -f my_dockerfile .

dockerは、パラメータとしてディレクトリ、オプションとしてファイル名を想定していることに注意してください。


0

私の問題は、Dockerfile.txtをUnix実行可能ファイルに変換する必要があることでした。私がそれをしたら、そのエラーは消えました。

これを行う前に.txtの部分を削除する必要があるかもしれませんが、Macではターミナルに移動し、Dockerfileがあるディレクトリとタイプにcdします

chmod +x "Dockerfile"

次に、ファイルをUnix実行可能ファイルに変換し、Dockerビルドコマンドで実行できるようにします。


0

次のコマンドがうまくいきました。Dockerファイルはmy-app-masterフォルダーに配置されました。

docker build -f my-app-master / Dockerfile -t my-app-master。


-4

Dockerビルドコマンドの形式

あなたのpowershellで:Dockerfileのパスを指定していないため、このタイプのエラーがあります。

これを試して:

$ docker build -t friendlyhello:latest -f C:\\TestDockerApp\\Dockerfile.txt

friendlyhelloは、コンテナーに割り当ててバージョンを追加する名前です。単に:latestを使用してください

-f C:\ TestDockerApp \ Dockerfile.txt- ビルドコマンドにはパラメーターまたはタグが必要なので、タグを追加します-DockerFileはテキストドキュメントなので、拡張子.txtを明示的に追加します

**このフォーマットを試してください:

$ docker build -t friendlyhello:latest -f C:\\TestDockerApp\\Dockerfile.txt .**

1
指定したコマンドは、同じエラーで失敗するはずです。ビルドコンテキストを引数として含める必要があります。多くの場合.、現在のディレクトリをビルドコンテキストとしてDockerエンジンに送信する必要があることを示します。
BMitch 2018
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.