web-dev-qa-db-ja.com

さまざまなdockerfilesを使用してソースディレクトリからdockerイメージを構築する

私の目標は、同じソースコードからいくつかの異なるDockerイメージを構築することです。

./srcフォルダー(node.jsプロジェクト)があります。 ./src内には、first.dockerfileと2番目のdockerfileがあります。

プロジェクトをビルドするには、この標準のコマンドラインを使用します

Sudo docker build -t doronaviugy/myproject .

これは、デフォルトを使用しても問題なく機能しますDockerfile

次の行を使用して特定のdockerfileからビルドしようとしています

Sudo docker build -t doronaviguy/myproject  - <   first.docker

この行は機能しますが、パスが画像内にコピーされていません

#Inside the Dockerfile
ADD . /src

Dockerfile引数を指定する方法は理解していると思いますが、dockerイメージ内にコピーするdirecotry引数を指定する必要があります。

どうもありがとう。

12
doron aviguy

Docker 1.5以降、-f引数を使用して、使用するDockerfileを選択できます。例:

docker build -t doronaviugy/myproject -f dockerfiles/first.docker .

Stdinを使用してイメージをビルドする場合(- < first.docker構文)、ビルドコンテキストがないため、参照するCOPYまたはADD命令を使用できなくなります。ローカルファイル。

古いバージョンのDockerを使用する必要がある場合は、docker buildを呼び出す前に、スクリプトを使用して特定のDockerファイルをビルドコンテキストのルートにあるDockerfileにコピーする必要があります。

23
Adrian Mouat