アーカイブ(.tar.gz
)を追加し、Dockerfileを使用してイメージの作成中に解凍したいと思います。
ADD archive.tar.gz /archive.tar.gz
RUN tar xzf archive.tar.gz
アーカイブを解凍すると、次のメッセージが表示されます。
tar: /archive.tar.gz: Cannot read: Is a directory
tar: At beginning of tape, quitting now
tar: Error is not recoverable: exiting now
ファイルarchive.tar.gz
はディレクトリではないので、これは私には意味がありません。
私が見ることができたDockerイメージの中間コミットを実行した後、その/archive.tar.gz
確かにディレクトリです。これは、イメージの作成中にアーカイブを追加するときに、dockerがアーカイブを自動的に抽出することを意味します。
これは docker document にも記載されています。
(編集:ファイル、例:.sql.gz
、追加時に解凍されません)
アーカイブをそのままにしておきたい場合は、COPY
ではなくADD
を使用してください。
ADD
コマンドでremoteURLを参照するときにこの問題に最近遭遇した他の人にとって、これはDocker 17.06.0-ce (2017-06-28)
。
から Dockersリリースノート :
注:Docker 17.06.0には、イメージビルダーに問題があり、リモートの.tar.gzファイルを参照するときにDockerfileのADD命令の動作が変更されます。この問題はDocker17.06.1で修正されます。