web-dev-qa-db-ja.com

tar:読み取れません:Docker内のディレクトリです

アーカイブ(.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はディレクトリではないので、これは私には意味がありません。

19
white_gecko

私が見ることができたDockerイメージの中間コミットを実行した後、その/archive.tar.gz確かにディレクトリです。これは、イメージの作成中にアーカイブを追加するときに、dockerがアーカイブを自動的に抽出することを意味します。

これは docker document にも記載されています。

(編集:ファイル、例:.sql.gz、追加時に解凍されません)

29
white_gecko

アーカイブをそのままにしておきたい場合は、COPYではなくADDを使用してください。

3
Kalle

ADDコマンドでremoteURLを参照するときにこの問題に最近遭遇した他の人にとって、これはDocker 17.06.0-ce (2017-06-28)

から Dockersリリースノート

注:Docker 17.06.0には、イメージビルダーに問題があり、リモートの.tar.gzファイルを参照するときにDockerfileのADD命令の動作が変更されます。この問題はDocker17.06.1で修正されます。

1
Joel Hoisko