web-dev-qa-db-ja.com

xzコマンドが原因で、Dockerのコンテナへのインストールスクリプトが失敗する

私はDocker用のPredictProteinを ここ からインストールしようとしています。 PredictProteinが使用するデータベースをインストールするためのスクリプトは、データを.txzファイルとしてダウンロードします。

ダウンロード後、スクリプトはファイルの解凍を試みます。これは失敗し、エラーメッセージが表示されます

/usr/local/bin/setupdb: line 15: xz: command not found

なぜ失敗するのですか?そして、どうすればこれを解決できますか?

Dockerバージョン17.12.1-ceを使用しています。 VirtualBoxを使用して、Ubuntu 16.04.3VM内で実行します

スクリプト(コンテナー内でコピー)は次のとおりです。

#!/bin/bash

if [ -d /usr/share/rostlab-data/ ]; then
        echo "Removing current database..."
        rm -rf /usr/share/rostlab-data/
fi

mkdir /usr/share/rostlab-data/
cd /usr/share/rostlab-data/

echo "Downloading database release..."
wget -O rostlab-data.txz "http://www.rostlab.org/services/ppmi/download_file?format=gzip&file_to_download=db"

echo "Extracting..."
xz -d rostlab-data.txz
tar xvf rostlab-data.tar
rm -f rostlab-data.tar

echo "Done."
1
Lafayette

Xzコマンドが見つからないため、ツールがインストールされていない可能性があります。コンテナがubuntuに基づいている場合(おそらくそうではない)、インストールされるので、Alpineに基づいていると思います。

Xzをインストールしてみてください!

apk add xz

または、Dockerfileを編集している場合は、ファイルの最初にRUNステートメントを追加するだけです。

2
Viter