Сценарий установки в контейнере Docker не выполняется из-за команды xz
Я пытаюсь установить PredictProtein для Docker отсюда. Скрипт для установки базы данных, используемый PredictProtein, загружает данные как .txz
файл.
После загрузки скрипт пытается распаковать файл. Это терпит неудачу, приводя к сообщению об ошибке
/usr/local/bin/setupdb: line 15: xz: command not found
Почему это не удается? И как я мог решить это?
Я использую Docker версии 17.12.1-ce; Я запускаю его внутри виртуальной машины Ubuntu 16.04.3, используя VirtualBox
Сценарий (скопированный внутри контейнера) выглядит следующим образом:
#!/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 в начале файла.