web-dev-qa-db-ja.com

docker: "build"は1つの人数を必要とします。docker build --helpを参照してください。

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

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

196
Tampa

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

416
user2915097

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

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

悪い:

Sudo docker build –t foo.

良い:

Sudo docker build -t foo.

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

23

次のコマンドを使う

docker build -t mytag .

Mytagとdotの間にはスペースがあります。このドットは現在の作業ディレクトリを表します。

12
arunprakashpj

enter image description here コマンドの最後に1つのスペースを含めてドット(。)を入力してください。

例:

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

ここでは、 "blink:v1"、それからスペース、そしてドット(。)を見ることができます。

それでおしまい。

11
Harunduet

あなたは最後にドットが必要です...


だから、例えば:

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

少し隠れていますが、最後の.に注目すると….

8
Alireza

デフォルトでは、docker fileという名前のファイルとDockerfileという名前のファイルからdockerイメージを作成できます。それはあなたのdockerコンテナに必要なコマンド/命令のセットを持っています。下記のコマンドはタグ最新の画像を作成します、Dockerfileはその場所に存在するべきです(。は現在のディレクトリを意味します)

docker build . -t <image_name>:latest

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

FROM busybox
RUN echo "hello world"
1
Vaseem007

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

その結果、変数の1つにスペースが含まれていたため、エラーが発生していました。パイプラインログが$VARIABLE_NAMEを示しただけなので見つけるのは困難でした。

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

から変更する:

--build-arg VARIABLE_NAME=$VARIABLE_NAME

に:

--build-arg VARIABLE_NAME="$VARIABLE_NAME"
1
spencer.sm

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

docker build -t tag .

ではなく

docker build . -t tag

1
Ryan R

PowerShellandを開いてこれらの指示に従ってください。このタイプのエラーは、Windows S.O.に典型的です。 コマンドbuildを使うときは、オプションとパスが必要です。

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\
0
daniele3004

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

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

chmod +x "Dockerfile"

そしてそれはあなたのファイルをUnixの実行可能ファイルに変換し、それはその後Docker buildコマンドで実行することができます。

0
SlickRemix