Docker 容器中的安装脚本因 xz 命令而失败

Docker 容器中的安装脚本因 xz 命令而失败

我正在尝试从安装 Docker 的 PredictProtein这里. PredictProtein 使用的安装数据库的脚本将数据下载为.txz文件。

下载后,脚本尝试解压文件。解压失败,并显示错误消息

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

为什么会失败?我该如何解决这个问题?

我使用 Docker 版本 17.12.1-ce;我使用 VirtualBox 在 Ubuntu 16.04.3 VM 中运行它

脚本(复制到容器内)如下:

#!/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

由于找不到 xz 命令,因此该工具可能未安装。如果容器基于 ubuntu(可能不是),则会安装它,这让我猜测它基于 alpine。

尝试安装 xz!

apk add xz

或者,如果您正在编辑 Dockerfile,只需在文件开头添加一个 RUN 语句。

相关内容