"./Docker-compose.yml" içindeki sürüm desteklenmiyor. Bu hatayı yanlış Compose dosya sürümünü kullandığınız için görüyor olabilirsiniz


92

İşte docker-compose.yml dosyam:

version: '3.1'

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

secrets:
  id: my_password

Koşarsam $ docker-compose-upşunu alırım:

"./Docker-compose.yml" dosyasındaki sürüm desteklenmiyor. Bu hatayı yanlış Compose dosya sürümünü kullandığınız için görüyor olabilirsiniz.

Docker-compose sürümüm:

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

Burada sorun ne? Docker-compose sürümüm, docker-compose.yml belirtiminin v3.1'i desteklememeli mi ( sürüm notlarına göre desteklemektedir )?


Docker'ınızın sürümü nedir (docker compose değil)?
lvthillo

Docker sürüm 1.13.0, yapı 49bf474
Eric

onun docker-composedeğildocker compose
Abdou Tahiri

@AbdouTahiri CLI, docker-composeancak Docker Composeteknolojidir .. docs.docker.com/compose
lvthillo

4
Sürümle aynı sorunla karşı karşıya "3.6". Dockerım18.03.0-ce, build 0520e24
Rajeev Ranjan

Yanıtlar:


92

Her şeyi doğru yapıyorsun ve işe yaramalı. Ancak docker-compose 1.11.0'da 3.1 dosya biçimini geçerli olarak tanımayan bir hata vardı . (3.0 çalışır).

Hata düzeltmesini içeren yeni bir docker-compose (1.11.1) sürümü zaten var:

Hata düzeltmeleri

3.1 dosya biçiminin Oluşturma ayrıştırıcısı tarafından geçerli olarak tanınmamasına neden olan bir hata düzeltildi

Bu yüzden 3.1 dosya biçimini kullanmak istiyorsanız docker-compose sürümünüzü yükseltmenizi tavsiye ederim.

Şu anda docker-compose'u yükseltmenin en güvenli yolu onu silip yeniden yüklemektir.

rm /usr/local/bin/docker-compose

Yeniden yükle:

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

Artık dosya biçiminde bir hata yok. (.Yml ile test etmedim).

docker-compose up
Starting compose_a_1
Starting compose_b_1

3
Teşekkürler. Bazı nedenlerden dolayı, curl cmd dozunuz ubuntu 16.04'te benim için çalışmıyor. Daha sonra buradaki resmi web sitesindeki kılavuzu izleyerek en son docker-compose sürümüne güncelledim. docs.docker.com/compose/install , yukarıdakilerle aşağı yukarı aynıdır. Ancak curl cmd'de ">", "-o" olarak değişir.
zhihong

8
Bug ayrıca 1.8.0 sürümünü de etkiler; 1.16.1 sürümü mevcut ve Ubuntu 16.04'te mükemmel bir şekilde çalıştı. Sadece yukarıdaki yolun sürüm bileşenini düzeltin, geri alıntı işaretleri nedeniyle bu yoruma açıkça yapıştıramazsınız: /
chrisinmtown

Sebebini bilmiyorum ama curlkomut çalışmıyor. .. izin verilmediğini söylüyor.
Deepak Sharma

1
curlKomut çalıştırmada hatayla karşılaşanlar , şunu deneyin: docs.docker.com/compose/install/#install-compose
Deepak Sharma

1
@DeepakSharma curl ve chmod komutlarını root kullanıcısı olarak çalıştırmalısınız (veya sudo kullanmalısınız)
lvthillo

53

Docker-compose'u yükselterek sorunu çözdüm.

Ubuntu16.04'te docker-compose'u yükseltmek için aşağıdaki adımları takip etti

Aşama 1:

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

Adım 2:

$sudo rm /usr/bin/docker-compose

Aşama 3:

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

adım4:

chmod +x /usr/bin/docker-compose

Bu, Elementary OS Loki'de (0.4.1) benim için iyi çalıştı.
J.Afarian


1
Apt-get'den aldığım sürüm 1.17 idi, aynı zamanda bu sorunu yaşıyordu (Linux Mint 19). Bu adımların düzenine benzer şekilde 1.24.1'i indirdim, çalışıyor gibi görünüyor. Teşekkürler!
Will Buck

1
Sildikten sonra, sudo apt install docker-composebana zaten sürüme sahip olduğumu söyle ve docker-compose upbana docker-compose'un kurulu olmadığını söyle. Neden apt kullanmıyorsunuz? Şimdi iki sorunum var.
Ambroise Rabier

18

Dosya sürümünüz 3.7 ise ve aşağıdaki hatayı alıyorsanız:

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.

İşte çözüm: -

(1) sudo apt-get remove docker-composeVEYAsudo 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

Umarım bu sorunu çözer.


github.com/docker/compose/releases adresinden en son sürümü kontrol etmek isteyebilirsiniz , şu anda sürüm 1.27.4
FrankZhu

4

Linux / ubuntu kullanıyorsanız , bu bariz olabilir, ancak dikkatli olun, örn.

docker-compose -v

Verir

docker-compose version 1.8.0, build unknown

vs

sudo docker-compose -v 

Verir

docker-compose version 1.17.1, build 6d101fb

Ayrıca docker-compose ve docker-machine'in @lvthillo durumlarına göre güncel olduğundan emin olun


Bu doğru cevap olmalı. Ubuntu'dayım, çalışmak için SUDO komutunu kullanmak zorunda kaldım
brunoramonal Almeida

sudo docker-compose -v bana docker-compose 1.8.0 sürümünü veriyor, bilinmeyen derleme
Julien,

Bu sudo ile mi?
Glen Thompson

-1. Sudo kötüdür. İşte bir alternatif: docs.docker.com/install/linux/linux-postinstall/…
Ligemer

Güzel ekledim, ancak "kötü" demesem de Ek olarak eklemek için yanıtı düzenlemekten çekinmeyin.
Glen Thompson

2

Yaptığım docker-compose --versionlvthillo en çözümünü uygulamadan önce ve hala eski sürümleri gösterilmesini başlamıştı. Bash kabuğumun tuttuğu hash listesini temizlemem gerektiği ortaya çıktı. hash -r... umarım başkası için yararlıdır


2

eski sürümü kaldırmayı ve yeniden yüklemeyi deneyin.

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

çıktı almalı

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

3
Bir dosya indirdiğiniz için neden makineyi yeniden başlatasınız?
Soren Bjornstad

1

Belirli bir hatayı izlemeden size söyleyemiyoruz, öncelikle bu komutu çalıştırarak kontrol edin

docker build . Hatayı aldığınızda, benim durumumda google'da arayın, sudo ile denediğimde izin hatasıydı, çalıştı.

Umarım sana yardımcı olur


0

OSX 10.12.6 Sierra'da

V1.22 veya üstü için adımlar

Docker'ı tamamen yükseltmek istemediğim belirli bir sorun / uyumsuzluk yaşadım. Şu anda docker 17.06.0-ce-mac18'de takılı kaldım. Bu yüzden sadece docker-compose'u yükseltmek istedim, başka bir şey istemedim.

Adımlarım:

  • Docker-compose konumunu belirleyin: which docker-compose
  • Docker-compose sürümünü tanımlayın: docker-compose --version=docker-compose version 1.14.0, build c7bdf9e
  • önceki docker-compose yedekle ?: mv /usr/local/bin/docker-compose /usr/local/bin/docker-compose-bak
  • şununla değiştir curl -L https://github.com/docker/compose/releases/download/1.22.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
  • En son sürümü belirlemeniz gerekiyorsa, https://github.com/docker/compose/releases adresini kontrol edin ve yukarıdaki sürümü en son sürümle değiştirin.
  • sürümü doğrula: docker-compose --version=docker-compose version 1.22.0, build f46880f
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.