Alpine Linuxにsqliteをインストールしています。ダウンロードsqlite-autoconf-3130000.tar.gz
がtar
が開けませんでした。私はこれを試しました answer が動作しません。 tar
は次のメッセージを表示します:
tar: invalid magic
tar: short read
これらのコマンドを書きました。
wget https://www.sqlite.org/2015/sqlite-autoconf-3090100.tar.gz
tar -zxvf sqlite-autoconf-3090100.tar.gz
Tarパッケージをインストールしてみてください(apk add tar)。 Busybox tar(デフォルト)はすべての機能をサポートしているわけではありません。
Francescoがファイルチェックサムを実際にチェックする必要があると指摘したため、これは必ずしもtar
のアルパインバージョンに互換性がないことを意味しません。
Dockerfileでcurl https://github.com/someproject/releases/project-1.1.0.gz | tar -xvzf
を実行しているときに、これに遭遇しました。
私が忘れていたのは、curl
が-L
で許可した場合にのみリダイレクトをたどることでした。そのため、実際のファイルに到達することはなく、文字通りHTMLをダウンロードしてそこに通知していました。リダイレクトでした。 -L
を追加すると、新しいtar
(curl
によって追加された「膨張」を超えて)でコンテナを肥大化することなくファイルを保存できました。
tar:invalid magicは、ファイルが破損していることを意味します。
一致する場合はmd5sumを確認してください...これは私が得たものです:
md5sum sqlite-autoconf-3090100.tar.gz
74931054399a2d7acf35637efe8d6f45 sqlite-autoconf-3090100.tar.gz
dockerでAlpineを使用する場合、COPY
はビルド時に解凍されるため、コンテナファイル(ADD
)ではDockerfile
ではなくADD
を使用することを表明してください。層
アルパインのデフォルトtar しないヒントを与える
tar (child): sqlite-autoconf-3090100.tar.gz: Cannot read: Is a directory
tar (child): At beginning of tape, quitting now
tar (child): Error is not recoverable: exiting now
同じ問題が発生して解決しましたが、同じ問題が発生していることはわかりません。
そのコード原因となるエラー:
wget www.example.com/file.tar.gz
tar -zxvf file.tar.gz
解決済みそれをコーディングする:
wget https://www.example.com/file.tar.gz
tar -zxvf file.tar.gz
「https://」を忘れてしまったことに注意してください。ファイルはダウンロードされましたが、tarで同じエラーが発生しました。ファイルが見つからない場合は、必ず使用してください
docker build -no-cache ...