"./Docker-compose.yml" में संस्करण असमर्थित है। आप इस त्रुटि को देख रहे होंगे क्योंकि आप गलत कंपोज़ फ़ाइल संस्करण का उपयोग कर रहे हैं


92

यहाँ मेरा docker-compose.yml फ़ाइल है:

version: '3.1'

services:
  a:
    image: tutum/hello-world
  b:
    image: tutum/hello-world

secrets:
  id: my_password

अगर मैं चलाता $ docker-compose-upहूं तो मुझे यह मिलता है:

"./Docker-compose.yml" में संस्करण असमर्थित है। आप इस त्रुटि को देख रहे होंगे क्योंकि आप गलत कंपोज़ फ़ाइल संस्करण का उपयोग कर रहे हैं।

मेरा docker- रचना संस्करण:

$ docker-compose --version
docker-compose version 1.11.0, build 6de1806

यहाँ क्या गलत है? क्या मेरा डॉक-कम्पोज़ वर्जन v3.1 को docker-compose.yml स्पेसिफिकेशन ( जारी नोटों के अनुसार , यह करता है) का समर्थन नहीं करना चाहिए ?


आपके docker का संस्करण क्या है (docker compose नहीं)?
lvthillo

डॉकर संस्करण 1.13.0, 49bf474 का निर्माण
एरिक

इसके docker-composeऔर नहींdocker compose
अब्दु ताहिरी

@AbdouTahiri CLI है, docker-composeलेकिन Docker Composeतकनीक है .. docs.docker.com/compose
lvthillo

4
संस्करण के साथ एक ही मुद्दे का सामना करना पड़ रहा है "3.6"। मेरा डॉकटर है18.03.0-ce, build 0520e24
राजीव रंजन

जवाबों:


92

आप सब कुछ सही कर रहे हैं और यह काम करना चाहिए। लेकिन एक बग था डॉक-कंपोज़ 1.11.0 में जो मान्य फ़ाइल प्रारूप 3.1 को मान्य नहीं था। (3.0 कार्य)।

डॉक-कम्पोज़ (1.11.1) की एक नई रिलीज़ पहले से ही है जिसमें बगफिक्स शामिल है:

कंप्यूटर प्रोग्राम या प्रणाली में बग को दूर करना

एक बग फिक्स्ड जहां 3.1 फाइल फॉर्मेट को कंपोजर पार्सर द्वारा मान्य नहीं माना जा रहा था

तो अगर आप फ़ाइल प्रारूप 3.1 का उपयोग करना चाहते हैं तो मैं आपके डॉकटर-कम्पोज़ संस्करण को अपग्रेड करने की सलाह दूंगा।

फिलहाल डॉकटर-कम्पोज को अपग्रेड करने का सबसे सुरक्षित तरीका है इसे हटाकर इसे फिर से इंस्टॉल करना।

rm /usr/local/bin/docker-compose

पुनः इंस्टॉल करें:

curl -L https://github.com/docker/compose/releases/download/1.11.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
docker-compose --version
docker-compose version 1.11.1, build 7c5d5e4

अब फ़ाइल प्रारूप पर कोई त्रुटि नहीं है। (मैंने आपके .yml के साथ परीक्षण नहीं किया था)।

docker-compose up
Starting compose_a_1
Starting compose_b_1

3
धन्यवाद। किसी कारण से, आपके कर्ल सीएमडी की खुराक ubuntu 16.04 में मेरे लिए काम नहीं करती है। मैंने तब आधिकारिक वेबसाइट में गाइड के बाद नवीनतम डॉकटर-कम्पोज़ संस्करण को अपडेट किया। docs.docker.com/compose/install , जो कमोबेश उपरोक्त के समान ही है। लेकिन कर्ल सेमीड में, ">" को "-ओ" में बदल दें।
zhihong

8
बग भी संस्करण 1.8.0 का विरोध करता है; संस्करण 1.16.1 उबंटू 16.04 पर पूरी तरह से उपलब्ध है और काम करता है। बस ऊपर दिए गए पथ के संस्करण घटक को ठीक करें, इसे इस टिप्पणी में स्पष्ट रूप से पेस्ट नहीं किया जा सकता क्योंकि पीछे के उद्धरण चिह्नों के कारण: /
chrisinmtown

कारण पता नहीं है, लेकिन curlकमांड निष्पादित नहीं करता है। .. कहते हैं अनुमति से वंचित
दीपक शर्मा

1
जो curlकमांड चलाने में त्रुटि का सामना कर रहे हैं, वे इसे आज़माएं: docs.docker.com/compose/install/#install-compose
दीपक शर्मा

1
@DeepakSharma आपको कर्ल और चामोद कमांड को रूट यूजर के रूप में निष्पादित करना है (या sudo का उपयोग करें)
lvthillo

53

मैंने डॉकटर-कम्पोज को अपग्रेड करके समस्या का समाधान किया है।

Ubuntu16.04 में डॉकटर-कंपोज को अपग्रेड करने के लिए चरणों के नीचे Follwed

चरण 1:

$which docker-compose
/usr/bin/docker-compose

चरण 2:

$sudo rm /usr/bin/docker-compose

चरण 3:

curl -L https://github.com/docker/compose/releases/download/1.20.0/docker-compose-`uname -s`-`uname -m` -o /usr/bin/docker-compose

चरण 4:

chmod +x /usr/bin/docker-compose

इसने एलिमेंटरी ओएस लोकी (0.4.1) पर मेरे लिए अच्छा काम किया।
जे। अफरियन

6
चूंकि
docker का

1
वर्जन जो मुझे apt-get से मिल रहा था, वह 1.17 था, यह इस इश्यू (Linux Mint 19) में भी था। मैंने १.२४.१ को डाउनलोड किया है कि ये कदम किस तरह से काम कर रहे हैं। धन्यवाद!
विल बक

1
इसे हटाने के बाद, sudo apt install docker-composeमुझे बताएं कि मेरे पास पहले से ही संस्करण है, और docker-compose upमुझे बताएं कि मेरे पास कोई डॉकटर-कंपोज स्थापित नहीं है। आप लोग उपयुक्त का उपयोग क्यों नहीं कर रहे हैं? मेरे पास अब दो मुद्दे हैं।
Ambroise Rabier

18

यदि आपका फ़ाइल संस्करण 3.7 है और आपको निम्न त्रुटि मिलती है:

ERROR: Version in "./config.yml" is unsupported. You might be seeing this error because you're using the wrong Compose file version. Either specify a supported version (e.g "2.2" or "3.3") and place your service definitions under the `services` key, or omit the `version` key and place your service definitions at the root of the file to use version 1.

यहाँ समाधान है: -

(१) sudo apt-get remove docker-composeयाsudo rm /usr/local/bin/docker-compose

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

(3) sudo chmod +x /usr/local/bin/docker-compose

(4) sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

मुझे उम्मीद है कि यह इस मुद्दे को हल करता है।


आप नवीनतम संस्करण github.com/docker/compose/releases पर जाना चाहते हैं , इस समय, संस्करण 1.27.4 है
फ्रैंकज़ु

4

अगर linux / ubuntu का उपयोग करते हैं , तो यह स्पष्ट है, लेकिन सावधान रहें कि आप रूट जैसे हैं

docker-compose -v

देता है

docker-compose version 1.8.0, build unknown

बनाम

sudo docker-compose -v 

देता है

docker-compose version 1.17.1, build 6d101fb

यह भी सुनिश्चित करें कि डॉकटर-कंपोज और डॉकटर -मशीन @lvthillo राज्यों के रूप में अद्यतित हैं


यह सही उत्तर होना चाहिए। मैं उबंटू में हूं, मुझे काम करने के लिए SUDO कमांड का इस्तेमाल करना पड़ा
brunoramonalmeida

sudo docker-compose -v मुझे docker-compose संस्करण 1.8.0 देता है, जो अज्ञात है
Julien

क्या वह सूडो के साथ है?
ग्लेन थॉम्पसन

-1। सूडो खराब है। यहाँ एक विकल्प है: docs.docker.com/install/linux/linux-postinstall/…
Ligemer

अच्छा जोड़, हालांकि मैं इसका "बुरा" नहीं कहूंगा। एक अतिरिक्त के रूप में शामिल करने के लिए उत्तर को संपादित करने के लिए स्वतंत्र महसूस करें।
ग्लेन थॉम्पसन

2

मैंने docker-compose --versionlvthillo के समाधान को लागू करने से पहले किया था और मुझे अभी भी पुराने संस्करण दिखाई दे रहे थे। यह पता चला कि मुझे हैश लिस्ट को फ्लश करने की जरूरत थी, मेरे बैश शेल पर पकड़ थी। hash -r... आशा है कि किसी और के लिए उपयोगी है


2

पुराने संस्करण को अनइंस्टॉल करने की कोशिश करें और फिर से इंस्टॉल करें।

sudo apt remove docker-compose
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
reboot

प्रिंट आउट लेना चाहिए

docker-compose --version
docker-compose version 1.22.0, build 1719ceb

3
आपने केवल एक फ़ाइल डाउनलोड करने के कारण मशीन को रिबूट क्यों किया?
सोरेन ब्योर्नस्टैड

1

हम आपको यह बताने में सक्षम नहीं हैं कि विशेष त्रुटि को देखे बिना पहले इस कमांड को चलाकर देखें

docker build . जब आपको त्रुटि मिली, तो इसे Google में खोजें मेरे मामले में यह अनुमति की त्रुटि थी जब मैंने इसे sudo के साथ आजमाया था।

आशा है इससे आपकी मदद होगी


0

ओएक्सएक्स 10.12.6 सिएरा पर

V1.22 या उच्चतर के लिए कदम

मेरे पास एक विशिष्ट मुद्दा / असंगति थी जहां मैं पूरी तरह से डॉक को अपग्रेड नहीं करना चाहता था। मैं वर्तमान में docker 17.06.0-ce-mac18 पर अटका हुआ हूँ। इसलिए मैं केवल डॉक-कम्पोज को अपग्रेड करना चाहता था और कुछ नहीं।

मेरे कदम:

  • डॉकटर-कंपोज़ की पहचान करें: which docker-compose
  • डॉकटर-कंपोज वर्जन की पहचान करें: docker-compose --version=docker-compose version 1.14.0, build c7bdf9e
  • बैकअप पिछले docker- रचना? mv /usr/local/bin/docker-compose /usr/local/bin/docker-compose-bak
  • से बदलो curl -L https://github.com/docker/compose/releases/download/1.22.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
  • अगर आपको नवीनतम संस्करण निर्धारित करने की आवश्यकता है, तो बस https://github.com/docker/compose/releases की जाँच करें और नवीनतम के साथ ऊपर दिए गए संस्करण को बदलें।
  • सत्यापन संस्करण: docker-compose --version=docker-compose version 1.22.0, build f46880f
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.