डॉकटर-कम्पोज़ को नवीनतम संस्करण में कैसे अपग्रेड किया जाए


110

मैंने कमांड का उपयोग करके डॉकटर-कम्पोज़ स्थापित किया है

sudo apt install docker-compose

इसने डॉकटर-कंपोज़ संस्करण 1.8.0 स्थापित किया और अज्ञात निर्माण किया

मुझे डॉकटर-कम्पोज़ के नवीनतम संस्करण या कम से कम 1.9.0 के संस्करण की आवश्यकता है

क्या कोई मुझे बता सकता है कि मुझे इसे अपग्रेड करने या नवीनतम संस्करण को अनइंस्टॉल करने और पुनः स्थापित करने के लिए क्या दृष्टिकोण अपनाना चाहिए।

मैंने डॉकटर वेबसाइट की जाँच की है और देख सकता है कि वे नवीनतम संस्करण को स्थापित करने के लिए इसकी सिफारिश कर रहे हैं '

sudo curl -L https://github.com/docker/compose/releases/download/1.21.0/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose

लेकिन इससे पहले, मुझे वर्तमान संस्करण की स्थापना रद्द करनी होगी, जिसे कमांड का उपयोग करके किया जा सकता है

sudo rm /usr/local/bin/docker-compose

लेकिन इसका उपयोग केवल तभी किया जा सकता है जब कर्ल का उपयोग करके इंस्टॉलेशन किया गया हो। मुझे यकीन नहीं है कि स्थापना कर्ल द्वारा की गई थी जैसा कि मैंने उपयोग किया है

sudo apt install docker-compose

कृपया मुझे बताएं कि मुझे डूकर-कंपोज़ को अनइंस्टॉल और री-इंस्टॉल करने के लिए अब क्या करना चाहिए।

जवाबों:


144

सबसे पहले, पुराने संस्करण को निकालें :

अगर apt-get के माध्यम से स्थापित किया गया है

sudo apt-get remove docker-compose

यदि कर्ल के माध्यम से स्थापित किया गया है

sudo rm /usr/local/bin/docker-compose

यदि पाइप के माध्यम से स्थापित किया गया है

pip uninstall docker-compose

फिर GitHub पर या यदि आपने इंस्टॉल किया है तो API को कर्लिंग करके रिलीज़ पेज पर नवीनतम संस्करण ढूंढें (इस सुधार के लिए ड्रैगन 788 और फ्रिज के लिए धन्यवाद ):jq

VERSION=$(curl --silent https://api.github.com/repos/docker/compose/releases/latest | jq .name -r)

अंत में, अपने पसंदीदा $ PATH-सुलभ स्थान को डाउनलोड करें और अनुमतियाँ सेट करें:

DESTINATION=/usr/local/bin/docker-compose
sudo curl -L https://github.com/docker/compose/releases/download/${VERSION}/docker-compose-$(uname -s)-$(uname -m) -o $DESTINATION
sudo chmod 755 $DESTINATION

2
/ usr / स्थानीय / बिन / docker- रचना में पथ अद्यतन करने का प्रयास करें और फिर चलाएंsudo chmod +x /usr/bin/docker-compose
राज कुमार गोयल

2
फ़ाइल को स्थानांतरित करने की आवश्यकता नहीं है। /usr/local/binरास्ते में होना चाहिए $PATHपहले से ही। बस chmodजगह में। इसे दर्शाने के लिए उत्तर अपडेट किया गया।
1

4
आप शायद sudo chmod 755 $DESTINATIONसिर्फ इसके बजाय करना चाहते हैं+x
Neo

2
नव, अच्छी पकड़। मैं आमतौर पर सिर्फ परमिट को समायोजित करता हूं अपनी जरूरत के मामले में अन्य चीजों ने चीजें सेट की हैं कि उन्हें इसकी आवश्यकता कैसे है। लेकिन यहां हम एक नई फ़ाइल डाउनलोड कर रहे हैं। सभी परमिट सेट करना समझ में आता है।
गोल्ड

2
@Rebar क्या आप इस बारे में अधिक विशिष्ट हो सकते हैं कि आप किस मार्ग को अद्यतन करना चाहते हैं? /usr/local/binपैकेजिंग प्रणाली द्वारा प्रबंधित वैश्विक बायनेरिज़ डालने के लिए एक सुंदर मानक स्थान नहीं है। उत्तर में "आपके पसंदीदा $ पेट-सुलभ स्थान" को निर्दिष्ट करने का भी उल्लेख किया गया है जो आपके $PATHअलग होने पर समायोजन को इंगित करता है।
एरिक एम। जॉनसन

38

डॉकर कम्पोज़ इंस्टॉलेशन के लिए एक स्थायी और स्थायी समाधान का सबसे आसान तरीका और इसे अपग्रेड करने का तरीका है, बस इसके साथ पैकेज मैनेजर पाइप का उपयोग करना है:

pip install docker-compose

मैं बदसूरत के लिए एक अच्छा समाधान खोज रहा था "नवीनतम संस्करण संख्या में अपग्रेड कैसे करें" -प्रोफ़ाइल, जो आपके द्वारा आधिकारिक डॉक्स पढ़ने के बाद दिखाई दिया - और बस यह कभी-कभार मिला - बस डॉकटर-कंपाउंड पाइप पर एक नज़र है पैकेज - यह (ज्यादातर) नवीनतम जारी डॉकर कम्पोज संस्करण की वर्तमान संख्या को प्रतिबिंबित करना चाहिए ।

एक पैकेज प्रबंधक हमेशा सबसे अच्छा समाधान होता है अगर यह सॉफ्टवेयर इंस्टॉलेशन के प्रबंधन के लिए आता है! तो आप बस अपने आप पर संस्करणों को संभालने से अमूर्त हैं।


2
+1 शानदार जवाब। पहले: मेरे पास डॉकटर-कंपोज वर्जन था: डॉकटर-कंपोज वर्जन १.२१.२, ए १३३४ So१ का निर्माण करें ताकि लेटेस्ट नॉन-आरसी वर्जन में अपग्रेड हो सके, मुझे यह अपग्रेड करने के लिए काम करने के लिए मिला: १) apt install python-pipपीआईपी pip install docker-composeलगाने के लिए फिर लेटेस्ट इन्स्टॉल करने के लिए फिर संस्करण की जाँच करने के लिए: docker-compose --versionजिसने मुझे दिया: docker-compose संस्करण 1.23.2, 1110ad0 का निर्माण
therobyouknow

pip install docker-composeमुझे "पहले ही संतुष्ट होने की आवश्यकता: docker- रचना" दे रहा था, इसलिए मुझे करना था apt-get purge docker-composeऔर hash -d docker-composeफिर pip install docker-composeUbuntu 18.04 पर 1.24 को docker-compose प्राप्त करना था ।
क्रुबो जू

पाइप द्वारा डॉकटर-कम्पोज़ स्थापित करने के बाद, मुझे इस त्रुटि का सामना करना पड़ा:ImportError: cannot import name 'Context'
बेनामिन जाफ़री

इसलिए, इस त्रुटि से निपटने के लिए, मैं dockerपैकेज को फिर से स्थापित करता हूंpip
बेनामिन जाफरी

17

@ Eric-johnson के उत्तर के आधार पर, मैं वर्तमान में इसे एक स्क्रिप्ट में उपयोग कर रहा हूं:

#!/bin/bash
compose_version=$(curl https://api.github.com/repos/docker/compose/releases/latest | jq .name -r)
output='/usr/local/bin/docker-compose'
curl -L https://github.com/docker/compose/releases/download/$compose_version/docker-compose-$(uname -s)-$(uname -m) -o $output
chmod +x $output
echo $(docker-compose --version)

यह GitHub एपीआई से नवीनतम संस्करण को पकड़ लेता है।


मुझे 4 वीं पंक्ति में एक त्रुटि का सामना करना पड़ा zsh: parse error near
:)

बस यहाँ यह परीक्षण किया है, लेकिन यह ठीक काम करने लगता है (zsh के साथ डेबियन 10)। आप सुनिश्चित करें कि आपने इसे सही तरीके से कॉपी किया है?
११:५२ पर फ्रेंक जूल

URL को दोहराते हुए दोहराएं, क्योंकि कभी-कभी शेल थोड़ा हड़प सकता है।
ड्रैगन 788

15

यदि उपरोक्त विधियाँ आपके लिए काम नहीं कर रही हैं, तो इस उत्तर को देखें: https://stackoverflow.com/a/40554985

curl -L "https://github.com/docker/compose/releases/download/1.22.0/docker-compose-$(uname -s)-$(uname -m)" > ./docker-compose
sudo mv ./docker-compose /usr/bin/docker-compose
sudo chmod +x /usr/bin/docker-compose

3
हालांकि यह लिंक प्रश्न का उत्तर दे सकता है, लेकिन उत्तर के आवश्यक भागों को शामिल करना और संदर्भ के लिए लिंक प्रदान करना बेहतर है। लिंक-केवल उत्तर अमान्य हो सकते हैं यदि लिंक किए गए पृष्ठ बदल जाते हैं। - समीक्षा से
लुकालाग

@Luuklag जवाब अपडेट करें। सुझाव के लिए धन्यवाद
kratihast

यह बहुत धीमा विकल्प लगता है
TeoTN

11

यदि आपने प्रयास किया sudo apt-get remove docker-composeऔर प्राप्त किया E: Unable to locate package docker-compose, तो इस विधि को आजमाएँ:

यह आदेश एक परिणाम लौटाना चाहिए, यह जाँचने के लिए यहाँ स्थापित है:

ls -l /usr/local/bin/docker-compose

पुराना संस्करण निकालें:

sudo rm -rf docker-compose

अंतिम संस्करण डाउनलोड करें (आधिकारिक रिपो की जाँच करें: docker / लिखें / जारी करें ):

sudo curl -L "https://github.com/docker/compose/releases/download/1.24.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

( यदि आवश्यक हो तो 1.24.0 बदलें )

अंत में, निष्पादन योग्य अनुमतियों को बाइनरी पर लागू करें:

sudo chmod +x /usr/local/bin/docker-compose

संस्करण की जाँच करें:

docker-compose -v

5

कर्ल और सेड के उपयोग से डॉकटर-कम्पोज़ का नवीनतम संस्करण स्थापित करने के लिए यहां एक और ऑनलाइनर है।

curl -L "https://github.com/docker/compose/releases/download/`curl -fsSLI -o /dev/null -w %{url_effective} https://github.com/docker/compose/releases/latest | sed 's#.*tag/##g' && echo`/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose && chmod +x /usr/local/bin/docker-compose

2

कमांड लाइन से इसका उपयोग करें: sudo curl -L "https://github.com/docker/compose/releases/download/1.22.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

नवीनतम रिलीज़ संस्करण लिखें

बाइनरी के लिए निष्पादन योग्य अनुमतियां लागू करें:

sudo chmod +x /usr/local/bin/docker-compose

फिर परीक्षण संस्करण:

$ docker-compose --version

2

मैं "Ubuntu 16.04.5 LTS" पर डॉकटर-कंपोज़ स्थापित करने की कोशिश कर रहा था, लेकिन इसे इस तरह स्थापित करने के बाद:

sudo curl -L "https://github.com/docker/compose/releases/download/1.26.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

मैं ला रही थी:

-बैश: / usr / स्थानीय / बिन / docker- रचना: अनुमति से इनकार किया

और जब मैं इसे सूदो के साथ इस्तेमाल कर रहा था तो मुझे मिल रहा था:

sudo: docker-compose: कमांड नहीं मिला

तो यहाँ कदम है कि मैं ले लिया है और मेरी समस्या को हल किया है:

sudo curl -L "https://github.com/docker/compose/releases/download/1.26.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo ln -sf /usr/local/bin/docker-compose /usr/bin/docker-compose
sudo chmod +x /usr/bin/docker-compose

1

इस प्रदर्शन के तरीकों को देखने के बाद मैं इसका उपयोग करना समाप्त कर दिया jq, और उम्मीद है कि मैं इसे बहुत अधिक काम किए बिना डॉकटर-कंपोज से परे अन्य रिपोज को संभालने के लिए विस्तारित कर सकता हूं।

# If you have jq installed this will automatically find the latest release binary for your architecture and download it
curl --silent "https://api.github.com/repos/docker/compose/releases/latest" | jq --arg PLATFORM_ARCH "$(echo `uname -s`-`uname -m`)" -r '.assets[] | select(.name | endswith($PLATFORM_ARCH)).browser_download_url' | xargs sudo curl -L -o /usr/local/bin/docker-compose --url

1

यदि आपके पास होमब्रे है तो आप इसके माध्यम से भी इंस्टॉल कर सकते हैं brew

$ brew install docker-compose

मैक ओएस सिस्टम पर इंस्टॉल करने का यह एक अच्छा तरीका है


1

Ubuntu डेस्कटॉप 18.04.2 पर, मेरे पास पैकेज को स्थापित करने के लिए कर्ल कमांड का उपयोग करते समय रास्ते से 'स्थानीय' हटा दिया गया है और यह मेरे लिए काम करता है। क्षितिज द्वारा इसका उत्तर देखें।


1

यदि आप पाइप के साथ स्थापित हैं, तो अपग्रेड करने के लिए आप इसका उपयोग कर सकते हैं:

 pip install --upgrade docker-compose

या जैसा कि Mariyo pip3 के साथ स्पष्ट रूप से बताता है:

 pip3 install --upgrade docker-compose

मेरे मामले में यह थाpip3 install --upgrade docker-compose
मेरीयो
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.