डोज़र कंटेनर में एक इंस्टॉलेशन स्क्रिप्ट xz कमांड के कारण विफल हो जाती है


1

मैं यहां से डॉकर के लिए प्रिडिक्टप्रोटीन स्थापित करने की कोशिश कर रहा हूं । PredictProtein द्वारा उपयोग किए जाने वाले डेटाबेस को स्थापित करने की स्क्रिप्ट डेटा को एक .txzफ़ाइल के रूप में डाउनलोड करती है ।

डाउनलोड करने के बाद, स्क्रिप्ट फ़ाइल को डिकम्प्रेस करने का प्रयास करती है। यह विफल हो जाता है, त्रुटि संदेश उपज

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

यह विफल क्यों होता है? और मैं इसे कैसे हल कर सकता हूं?

मैं डॉकर संस्करण का उपयोग करता हूं 17.12.1-CE; मैं एक Ubuntu 16.04.3 VM के अंदर, 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."

जवाबों:


2

चूंकि xz कमांड नहीं मिला है, इसलिए उपकरण संभवतः स्थापित नहीं है। यदि कंटेनर ubuntu पर आधारित है (यह शायद नहीं है) तो इसे स्थापित किया जाएगा, जिससे मुझे लगता है कि यह अल्पाइन पर आधारित है।

Xz स्थापित करने का प्रयास करें!

apk add xz

या यदि आप Dockerfile का संपादन कर रहे हैं, तो बस फ़ाइल में जल्दी RUN स्टेटमेंट जोड़ें।


आपका मतलब है कि मुझे इस कमांड को इंस्टॉलेशन स्क्रिप्ट में जोड़ना चाहिए?
लाफयेट

यदि आप एक टर्मिनल के साथ कंटेनर में हैं (अंतःक्रियात्मक रूप से) तो आप अपनी स्क्रिप्ट चलाने से पहले बस इसे टाइप कर सकते हैं। अन्यथा इसे अपनी Dockerfile "RUN apk add xz" की पहली पंक्तियों में से एक के रूप में जोड़ें
Viter

मैंने कोशिश की docker run ecbeaec0320f sudo apk add xz, लेकिन मैं त्रुटि मिली docker: Error response from daemon: OCI runtime create failed: container_linux.go:348: starting container process caused "exec: \"sudo\": executable file not found in $PATH": unknown. (ecbeaec0320f छवि आईडी है)
Lafayette

अल्पाइन के साथ सुडो का उपयोग न करें। क्या आप अपने द्वारा उपयोग किए जा रहे डॉकरीफाइल को लिंक कर सकते हैं?
वेटर

इसके अलावा training.play-with-docker.com/ops-stage1 हैंड्स-ऑन-लर्निंग के तहत पहले 2 ट्यूटोरियल चलाते हैं, और लिनक्स में पैकेज मैनेजर कमांड को समझने की कोशिश करते हैं (अल्पाइन में एप्ट-गेट और अल्पाइन में एपीके)।
वेटर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.