149

次のようなDockerfileを構築できます

docker build -t deepak/ruby .

しかし、名前が付けられていない Dockerfile の場合Dockerfile

# DOCKER-VERSION 0.4.8

FROM deepak/ruby

MAINTAINER Deepak Kannan "deepak@example.com"

RUN ./bin/rails s

私たちがDockerfile.app 構築するものと呼ばれるとしましょう

docker build -t deepak/app Dockerfile.app

その後、エラーが発生します

Uploading context 0 bytes
Error build: EOF
EOF
4

10 に答える 10

324

.両方のコマンドの末尾にドットがあることに注意してください。

docker build -f MyDockerfile .

またはタグ付き:

docker build -t mysuperimage -f MyDockerfile .
于 2016-05-13T10:55:16.907 に答える
25

docker build の最後のパラメーターはビルド パスです。.これを指定すると、Dockerfile. に変更するDockerfile.appと、 が検索されますがDockerfile.app/Dockerfile、これは正しくありません。

まだ機能するかどうかはわかりませんが、以前はこれができました。

$ docker build -t deepak/app - < Dockerfile.app

それを試して、それが役立つかどうかを確認してください。そうでない場合は、docker の問題を開いてこの機能を再度追加するか、別の名前の Dockerfile の使用方法に関するドキュメントを更新してください。

詳細はこちら: http://docs.docker.io/en/latest/commandline/command/build/

于 2013-07-05T16:13:49.840 に答える
17

dockerfeedを試してください。docker 機能を使用して、stdin を介してコンテキストを構築します。私が直面していたあなたの問題に正確に対処するためにスクリプトを書きました。

Dockerfile を別のものに置き換えるには、次のようにします。

dockerfeed -d Dockerfile.app . | docker build -t deepak/ruby -

そしてほら。Dockerfeed は と同じことをしていdocker buildます。ソースとその Dockerfile をパックしますが、古い Dockerfile を目的の Dockerfile と交換できます。このプロセスでファイルは作成されず、ソースも変更されません。生成された tar アーカイブは docker にパイプされ、docker デーモンに送信されます。

更新:-fこれは、利用可能なスイッチ がなかった昔の有効な答えでした。docker バージョン 1.5 で、このオプションが導入されました。これで、次のように別の Dockerfile をビルドして提供できます。

docker build -f other-Dockerfile .
于 2014-10-27T13:29:37.297 に答える