मैं डॉकर के लिए अपेक्षाकृत नया हूँ। मेरे पास एक ऐसा एप्लिकेशन है जिसे मैं कंटेनरीकृत करना चाहता हूं।

नीचे मेरी डोकर फ़ाइल है:

FROM ubuntu:16.04

## ENV Variables
ENV PYTHON_VERSION="3.6.5"

# Update and Install packages
RUN apt-get update -y \
 && apt-get install -y \
 curl \
 wget \
 tar

# Install Python 3.6.5
RUN wget https://www.python.org/ftp/python/${PYTHON_VERSION}/Python-${PYTHON_VERSION}.tar.xz \
    && tar -xvf Python-${PYTHON_VERSION}.tar.xz \
    && cd Python-${PYTHON_VERSION} \
    && ./configure \
    && make altinstall \
    && cd / \
    && rm -rf Python-${PYTHON_VERSION}

# Install Google Cloud SDK

# Downloading gcloud package
RUN curl https://dl.google.com/dl/cloudsdk/release/google-cloud-sdk.tar.gz > /tmp/google-cloud-sdk.tar.gz

# Installing the package
RUN mkdir -p /usr/local/gcloud \
  && tar -C /usr/local/gcloud -xvf /tmp/google-cloud-sdk.tar.gz \
  && /usr/local/gcloud/google-cloud-sdk/install.sh

# Adding the package path to local
ENV PATH $PATH:/usr/local/gcloud/google-cloud-sdk/bin

मैं python3.6.5 संस्करण स्थापित करने का प्रयास कर रहा हूं लेकिन मुझे निम्न त्रुटि प्राप्त हो रही है।

020-01-09 17:26:13 (107 KB/s) - 'पायथन-3.6.5.tar.xz' सहेजा गया [17049912/17049912]

टार (बच्चा): xz: निष्पादित नहीं कर सकता: ऐसी कोई फ़ाइल या निर्देशिका नहीं

टार (बच्चा): त्रुटि पुनर्प्राप्त करने योग्य नहीं है: अभी बाहर निकल रहा है

टार: चाइल्ड रिटर्न स्टेटस 2

टार: त्रुटि पुनर्प्राप्त करने योग्य नहीं है: अभी बाहर निकल रहा है

कमांड '/bin/sh -c wget https://www.python.org/ftp/python /${PYTHON_VERSION}/Python-${PYTHON_VERSION}.tar.xz && tar -xvf Python-${PYTHON_VERSION}.tar.xz && cd Python-${PYTHON_VERSION} && ./कॉन्फ़िगर करें && alt इंस्टॉल करें && cd / && rm -rf Python-${PYTHON_VERSION}' ने एक गैर-शून्य कोड लौटाया: 2

1
CyberPunk 9 जिंदा 2020, 20:30
आप सीधे अजगर छवि का उपयोग क्यों नहीं करेंगे?
 – 
emix
9 जिंदा 2020, 20:47
अगर मैं गलत हूं तो मुझे सुधारें, मैं UBUNTU आधार छवि से शुरू कर रहा हूं, तो क्या मैं भी इसका उपयोग कर सकता हूं: अजगर से: 3.6.5
 – 
CyberPunk
9 जिंदा 2020, 20:52
यह इसकी खूबी है: आप सीधे अजगर की छवि का उपयोग कर सकते हैं और अजगर को पहले से स्थापित करते हुए इसका विस्तार कर सकते हैं। मेरा सुझाव है कि हालांकि टैग संस्करण 3 या 3.6 का उपयोग करें। इस तरह आप भविष्य में अपनी छवि को आसानी से अपडेट कर सकते हैं यदि पाइथन अपडेट किया गया है, उदाहरण के लिए। से 3.7
 – 
emix
9 जिंदा 2020, 20:58
क्या आप मुझे किसी ऐसे संसाधन की ओर संकेत कर सकते हैं जहां मुझे इसकी बेहतर समझ हो सके?
 – 
CyberPunk
9 जिंदा 2020, 20:58
ऑनलाइन बहुत सारे संसाधन हैं कि डॉकर कैसे काम करता है। अपने आप को कुछ ऐसा कॉन्फ़िगर करने से परेशान न करें जो आप बॉक्स से बाहर कर सकते हैं।
 – 
emix
9 जिंदा 2020, 21:00

2 जवाब

एक .xz फ़ाइल को डीकंप्रेस करने के लिए xz बाइनरी की आवश्यकता होती है जो ubuntu के अंतर्गत पैकेज xz-utils द्वारा प्रदान की जाती है, इसलिए आपको xz इंस्टॉल करना होगा किसी .xz फ़ाइल को डीकंप्रेस करने से पहले आपकी छवि पर -utils

आप इसे अपने पिछले apt-get install रन में जोड़ सकते हैं:

# Update and Install packages
RUN apt-get update -y \
 && apt-get install -y \
 curl \
 wget \
 tar \
 xz-utils

इसे अगले रन एक्सप्रेशन में tar पर निम्न कॉल को ठीक करना चाहिए

2
Zeitounator 4 मार्च 2021, 19:15

पायथन को स्थापित करने की कोशिश करने के बजाय, बस एक मूल छवि से शुरू करें जिसमें पायथन पहले से स्थापित है, उदा। python:3.6-buster. यह छवि डेबियन बस्टर पर आधारित है, जिसे 2019 में जारी किया गया था। चूंकि उबंटू डेबियन पर आधारित है, इसलिए सब कुछ बहुत समान होगा, और चूंकि यह 2019 से है (उबंटू 16.04 के विपरीत, जो 2016 से है) आप और अधिक उठेंगे -टू-डेट सॉफ्टवेयर।

देखें https://pythonspeed.com/articles/base-image-python- docker-images/ लंबी चर्चा के लिए।

0
Itamar Turner-Trauring 10 जिंदा 2020, 00:32