Docker-compose'u en son sürüme yükseltme


102

Docker-compose komutunu kullanarak kurdum

sudo apt install docker-compose

Docker-compose 1.8.0 sürümünü yükledi ve bilinmeyen oluştur

Docker-compose'un en son sürümüne veya en azından 1.9.0 sürümüne ihtiyacım var

Herhangi biri, yükseltmek veya en son sürümü kaldırıp yeniden yüklemek için hangi yaklaşımı kullanmam gerektiğini bana söyleyebilir mi?

Docker web sitesini kontrol ettim ve en son sürümü yüklemek için bunu önerdiklerini görebiliyorum '

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

Ancak ondan önce, komut kullanılarak yapılabilen mevcut sürümü kaldırmam gerekiyor.

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

ancak bu yalnızca kurulum curl kullanılarak yapıldığında kullanılabilir. Kurulumun kullandığım gibi curl tarafından yapıldığından emin değilim

sudo apt install docker-compose

Lütfen docker-compose'u kaldırıp yeniden yüklemek için şimdi ne yapmam gerektiğini bildirin.

Yanıtlar:


131

İlk önce eski sürümü kaldırın :

Apt-get ile kurulursa

sudo apt-get remove docker-compose

Curl ile kurulursa

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

Pip ile kurulursa

pip uninstall docker-compose

Sonra yeni sürümü bulmak üzerinde GitHub'dan de serbest bırakma sayfa veya varsa API kıvrılarak jq(sayesinde yüklü dragon788 ve frbl bu iyileştirme):

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

Son olarak, indirme favori $ PATH-erişilebilir konumu ve set izinleri:

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 / local / bin / docker-compose içindeki yolu güncellemeyi deneyin ve ardından çalıştırınsudo chmod +x /usr/bin/docker-compose
Raj Kumar Goyal

2
Dosyayı taşımanıza gerek yok. /usr/local/binYol olmalıdır $PATHzaten. Tam chmodyerinde. Cevap bunu yansıtacak şekilde güncellendi.
Gold

4
Muhtemelen sudo chmod 755 $DESTINATIONsadece yerine yapmak istersiniz+x
Neo

2
Neo, iyi yakaladın. Diğer şeylerin ihtiyaç duydukları şeyleri ayarlaması durumunda, genellikle izinleri ihtiyacıma göre ayarlıyorum. Ama burada yeni bir dosya indiriyoruz. Tüm izinleri ayarlamak mantıklı.
Altın

2
@Rebar Lütfen yolun neye güncellenmesini istediğiniz konusunda daha spesifik olabilir misiniz? /usr/local/binpaketleme sistemi tarafından yönetilmeyen küresel ikili dosyalar koymak için oldukça standart bir yerdir. Yanıt aynı zamanda, sizin $PATHfarklı olup olmadığını ayarlamayı belirten "$ PATH tarafından erişilebilen favori konumunuz" u belirtmekten de bahsediyor .
Eric M. Johnson

37

Docker Compose kurulumu için kalıcı ve sürdürülebilir bir çözüme sahip olmanın en kolay yolu ve bunu yükseltmenin yolu, paket yöneticisi pip'i aşağıdakilerle kullanmaktır :

pip install docker-compose

Resmi belgeleri okuduktan sonra ortaya çıkan çirkin "en son sürüm numarasına nasıl yükseltilir" sorunu için iyi bir çözüm arıyordum - ve ara sıra buldum - docker-compose pip'e bir göz atın paketi - en son yayınlanan Docker Compose sürümünün mevcut numarasını (çoğunlukla) yansıtmalıdır .

Yazılım kurulumlarının yönetilmesi söz konusu olduğunda, bir paket yöneticisi her zaman en iyi çözümdür! Dolayısıyla, sürümleri kendi başınıza ele almaktan soyutlanırsınız.


2
+1 harika yanıt. Daha önce: docker-compose sürümüm vardı: docker-compose sürüm 1.21.2, derleme a133471 Bu nedenle, en son RC olmayan sürüme yükseltmek için, yükseltme yapmak için bunun işe yaradığını gördüm: 1) PIP'yi yüklemek ve apt install python-pipardından pip install docker-composeen son sonra sürümü kontrol etmek için: docker-compose --versionbana verdi: docker-compose version 1.23.2, build 1110ad0
therobyouknow

pip install docker-composeYapmam gereken bu yüzden: "liman işçisi-oluşturma zaten memnun Gereği" beni veriyordu apt-get purge docker-composeve hash -d docker-composedaha sonra pip install docker-composeliman işçisi-oluşturma 1.24 Ubuntu 18.04 almak.
krubo

Docker-compose by pip'i yükledikten sonra şu hatayla karşılaştım:ImportError: cannot import name 'Context'
Benyamin Jafari

Bu nedenle, bu hatayla başa çıkmak için dockerpaketi yeniden pip
yükledim

17

@ Eric-johnson'ın cevabına göre, şu anda bunu bir senaryoda kullanıyorum:

#!/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 api'den en son sürümü alır.


4. satırda bir hatayla karşılaştım zsh: parse error near
:)

sadece burada test ettim, ama iyi çalışıyor gibi görünüyor (zsh ile debian 10). Doğru kopyaladığına emin misin?
frbl

Kabuk bazen biraz zorlanabileceğinden, URL'leri çift tırnak içine almayı deneyin.
dragon788

15

Yukarıdaki yöntemler sizin için işe yaramıyorsa, şu yanıta bakın: 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
Bu bağlantı soruyu cevaplayabilirken, cevabın temel kısımlarını buraya eklemek ve referans için bağlantıyı sağlamak daha iyidir. Bağlantılı sayfa değişirse yalnızca bağlantı yanıtları geçersiz hale gelebilir. - Yorumdan
Luuklag

@Luuklag Cevabı güncelledi. Öneriniz için teşekkür ederiz
kpratihast

Son derece yavaş bir seçenek gibi görünüyor
TeoTN

10

Denediyseniz sudo apt-get remove docker-composeve aldıysanız E: Unable to locate package docker-compose, şu yöntemi deneyin:

Bu komutun burada kurulu olup olmadığını kontrol etmek için bir sonuç döndürmesi gerekir:

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

Eski sürümü kaldırın:

sudo rm -rf docker-compose

Son sürümü indirin (resmi depoyu kontrol edin: docker / compose / release ):

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

( gerekirse 1.24.0'ı değiştirin )

Son olarak, ikili programa çalıştırılabilir izinler uygulayın:

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

Sürümü kontrol edin:

docker-compose -v

5

Curl ve sed kullanarak docker-compose'un en son sürümünü yüklemek için başka bir oneliner.

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

bunu komut satırından kullanın: 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

En son sürüm sürümünü yazın

İkiliye yürütülebilir izinler uygulayın:

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

Ardından sürümü test edin:

$ docker-compose --version

1

Bunu gerçekleştirmenin yollarına çokça baktıktan sonra kullanmayı jqbıraktım ve umarım çok fazla çalışma yapmadan Docker-Compose dışındaki diğer depoları işlemek için genişletebilirim.

# 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

Homebrew'unuz varsa, şu yolla da kurabilirsiniz: brew

$ brew install docker-compose

Bu, bir Mac OS sistemine yüklemenin iyi bir yoludur


1

Ubuntu masaüstünde 18.04.2, paketi yüklemek için curl komutunu kullanırken 'yerel'i yoldan kaldırdım ve benim için çalışıyor. Kshitij'in yukarıdaki cevabına bakın.


1

Pip ile kurduysanız, yükseltmek için şunları kullanabilirsiniz:

 pip install --upgrade docker-compose

veya Mariyo'nun pip3 ile açıkça belirttiği gibi:

 pip3 install --upgrade docker-compose

benim durumumdapip3 install --upgrade docker-compose
Mariyo

1

Docker-compose'u "Ubuntu 16.04.5 LTS" üzerine kurmaya çalışıyordum ama şu şekilde kurduktan sonra:

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

Alıyordum:

-bash: / usr / local / bin / docker-compose: İzin reddedildi

ve onu sudo ile kullanırken şunu alıyordum:

sudo: docker-compose: komut bulunamadı

İşte attığım ve sorunumu çözdüğüm adımlar:

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
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.