回答:
COPY README.md package.json gulpfile.js __BUILD_NUMBER ./
または
COPY ["__BUILD_NUMBER", "README.md", "gulpfile", "another_file", "./"]
ソースファイル仕様でワイルドカード文字を使用することもできます。詳細については、ドキュメントを参照してください。
ディレクトリは特別です!あなたが書くなら
COPY dir1 dir2 ./
実際には
COPY dir1/* dir2/* ./
1つのコマンドで宛先ディレクトリーの下に複数のディレクトリー(内容ではない)をコピーする場合は、ソースディレクトリーが共通の親の下にあり、次にCOPY
その親の下になるようにビルドコンテキストを設定する必要があります。
tar
アーカイブにして、ADDで追加することを検討してください。
COPY <all> <the> <things> <last-arg-is-destination>
しかし、これはドキュメントからの重要な抜粋です:
コンテキストから異なるファイルを使用する複数のDockerfileステップがある場合は、一度にすべてではなく、それらを個別にコピーします。これにより、特に必要なファイルが変更された場合にのみ、各ステップのビルドキャッシュが無効化されます(ステップを強制的に再実行します)。
https://docs.docker.com/develop/develop-images/dockerfile_best-practices/#add-or-copy
簡単な
COPY README.md package.json gulpfile.js __BUILD_NUMBER ./
文書から
直接またはワイルドカードの使用により、複数のリソースが指定されている場合は、ディレクトリである必要があり、スラッシュ/で終わる必要があります。
コピーしたくない.dockerignore
ファイルを除外するために、ファイルを作成することもできます。
https://docs.docker.com/engine/reference/builder/#dockerignore-file
docker CLIは、コンテキストをdockerデーモンに送信する前に、コンテキストのルートディレクトリで.dockerignoreという名前のファイルを探します。このファイルが存在する場合、CLIはコンテキストを変更して、そのパターンに一致するファイルとディレクトリを除外します。これは、不必要に大きなファイルやディレクトリをデーモンに送信したり、ADDまたはCOPYを使用してそれらをイメージに追加したりする可能性を回避するのに役立ちます。