docker-composeを最新バージョンにアップグレードする方法


110

コマンドを使用してdocker-composeをインストールしました

sudo apt install docker-compose

docker-composeバージョン1.8.0をインストールし、ビルドは不明です

docker-composeの最新バージョンまたは少なくとも1.9.0のバージョンが必要です

誰かがそれをアップグレードするか、最新バージョンをアンインストールして再インストールするためにどのようなアプローチを取るべきか教えてください。

DockerのWebサイトを確認したところ、最新バージョンをインストールするためにこれを推奨していることがわかりました。

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

ただし、これは、curlを使用してインストールが行われた場合にのみ使用できます。私が使用したようにインストールがcurlによって行われたかどうかはわかりません

sudo apt install docker-compose

docker-composeをアンインストールして再インストールするために今何をすべきか教えてください。

回答:


144

まず、古いバージョンを削除します。

apt-get経由でインストールされた場合

sudo apt-get remove docker-compose

curl経由でインストールした場合

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

pip経由でインストールした場合

pip uninstall docker-compose

次に、GitHubのリリースページで最新バージョン見つけるか、インストールしている場合はAPIをカーリングします(この改善についてはdragon788frblに感謝します)。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 / local / bin / docker-composeでパスを更新してから、実行してみてくださいsudo chmod +x /usr/bin/docker-compose
Raj Kumar Goyal 2018年

2
ファイルを移動する必要はありません。/usr/local/binパスがである必要があり$PATH、既に。ちょうどいいchmod場所に。これを反映するように回答が更新されました。
ゴールド

4
あなたはおそらくsudo chmod 755 $DESTINATIONただの代わりにやりたいでしょう+x
ネオ

2
ネオ、いいキャッチ。私は通常、他のものが必要な方法で設定した場合に備えて、必要に応じてパーマを調整します。しかし、ここでは新しいファイルをダウンロードしています。すべてのパーマを設定することは理にかなっています。
ゴールド

2
@Rebarパスを何に更新するかについて具体的に教えてください。/usr/local/binパッケージングシステムによって管理されていないグローバルバイナリを配置するためのかなり標準的な場所です。答えはまた、あなた$PATHが違うかどうかを調整することを示す「あなたの好きな$ PATHでアクセス可能な場所」を指定することにも言及しています。
エリックM.ジョンソン

38

Docker Composeのインストールとそれをアップグレードするための永続的で持続可能なソリューションを実現する最も簡単な方法は、パッケージマネージャーのpipを次のように使用することです。

pip install docker-compose

そしてただ時折それを見つけた- -私はyou'veは、公式ドキュメントを読んで後に現れた-problemを、「最新のバージョン番号にアップグレードする方法」醜いのための良い解決策を探していただけで見ていドッキングウィンドウ・コンピップをパッケージ-(ほとんど)最新リリースのDockerComposeバージョンの現在の数を反映する必要があります。

ソフトウェアインストールの管理に関しては、パッケージマネージャーが常に最良のソリューションです。したがって、バージョンを自分で処理することから抽象化するだけです。


2
+1素晴らしい答え。以前:docker-composeバージョン:docker-composeバージョン1.21.2、ビルドa133471を持っていたので、最新の非RCバージョンにアップグレードするには、アップグレードするためにこれが機能することがわかりました:1)apt install python-pipPIP pip install docker-composeをインストールしてから、最新の:その後、バージョンを確認するにはdocker-compose --versionドッキングウィンドウ・コンバージョン1.23.2、ビルド1110ad0:私を与えた
therobyouknow

pip install docker-compose私がしなければならなかったので:「ドッキングウィンドウ・コンすでに満足要件を」私を与えていたapt-get purge docker-composeし、hash -d docker-composeその後、pip install docker-composeドッキングウィンドウ・コン1.24のUbuntu 18.04上で取得します。
krubo

ピップでドッカ-コンをインストールした後、私はこのエラーが発生しました:ImportError: cannot import name 'Context'
Benyamin Jafari

したがって、このエラーに対処するために、dockerパッケージを再インストールしますpip
BenyaminJafari20年

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)

GitHubAPIから最新バージョンを取得します。


4行目でエラーが発生しzsh: parse error near
BenyaminJafari20年

ここでテストしたところですが、正常に動作しているようです(debian 10 with zsh)。正しくコピーしましたか?
frbl

シェルが少しグラブになることがあるので、URLを二重に引用してみてください。
dragon7 8820

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 2018

@Luuklag回答を更新しました。提案をありがとう
kpratihast

非常に遅いオプションのようです
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 / compose / releases):

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

これは、最新バージョンのdocker-composeをcurlとsedを使用してインストールするための別のワンライナーです。

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

「Ubuntu16.04.5LTS」に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

私が得ていた:

-bash:/ usr / local / bin / docker-compose:アクセスが拒否されました

sudoで使用していると、次のようになります。

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になりました。うまくいけば、Docker-Compose以外の他のリポジトリを処理するためにあまり手間をかけずに拡張できます。

# 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

ubuntuデスクトップ18.04.2では、curlコマンドを使用してパッケージをインストールするときに、パスから「ローカル」を削除しましたが、これで機能します。Kshitijによる上記の回答を参照してください。


1

pipを使用してインストールした場合、アップグレードするには次を使用できます。

 pip install --upgrade docker-compose

またはMariyoがpip3で明示的に述べているように:

 pip3 install --upgrade docker-compose

私の場合はpip3 install --upgrade docker-compose
Mariyo 2020年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.