2016-06-14 8 views
3

ドッカーのビルドコマンドを実行すると、ファイルをドッカー画像にコピーしようとしています。私はこれがドッカーのrails onbuildファイルのために働くと思われるので私が間違っていることを確信していませんが、私のカスタムドッカーファイルでは動作しません。ここでDocker ONBUILD COPYがファイルをコピーしていないようです

私は実行私のDockerfile

FROM ubuntu:14.04 

RUN mkdir -p /usr/src/app 
WORKDIR /usr/src/app 

ONBUILD COPY Gemfile /usr/src/app 

CMD ["tail", "-f", "/dev/null"] 

ドッキングウィンドウのコマンドは以下のとおりであるされています。

docker build -t copy-test . 
docker run --name run-test -d copy-test 
docker exec -i -t 2e9adebae0fc /bin/bash 

私はそれが/usr/src/appに起動しますが、Gemfileがないドッカ幹部とのコンテナに接続します。私はなぜmkdirとWORKDIR命令が動作するように見えますが、ONBUILD COPYはそうでないのか分かりません。 (これらのコマンドを呼び出すディレクトリにはGemfileがあります)

答えて

5

画像を構築するには、COPYを使用する必要があります。イメージが他のイメージを構築するためのテンプレートの種類の場合は、ONBUILDを使用してください。

Docker documentationを見る

ONBUILD命令は、画像を別のビルドのためのベースとして使用されて後で実行されるトリガ命令、画像に付加します。トリガは、下流のDockerfileのFROM命令の直後に挿入されたかのように、下流のビルドのコンテキストで実行されます。

+0

これは機能しました。最初のイメージから2番目のイメージを作成した場合、ONBUILDを使用することもできました。 2番目のイメージドッカーファイルには、単に 'FROM ' – MikeV

+0

MikeV: – molivier

関連する問題