Skip to content

Instantly share code, notes, and snippets.

@deviantony
Last active December 10, 2024 19:04
Show Gist options
  • Save deviantony/2b5078fe1675a5fedabf1de3d1f2652a to your computer and use it in GitHub Desktop.
Save deviantony/2b5078fe1675a5fedabf1de3d1f2652a to your computer and use it in GitHub Desktop.
Install latest version of Docker Compose
#!/bin/bash
## THIS IS THE OLD WAY
## Nowadays, simply follow the Compose installation instructions in the official documentation:
## https://docs.docker.com/compose/install/
# get latest docker compose released tag
COMPOSE_VERSION=$(curl -s https://api.github.com/repos/docker/compose/releases/latest | grep 'tag_name' | cut -d\" -f4)
# Install docker-compose
sh -c "curl -L https://github.com/docker/compose/releases/download/${COMPOSE_VERSION}/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose"
chmod +x /usr/local/bin/docker-compose
sh -c "curl -L https://raw.githubusercontent.com/docker/compose/${COMPOSE_VERSION}/contrib/completion/bash/docker-compose > /etc/bash_completion.d/docker-compose"
# Output compose version
docker-compose -v
exit 0
@euclidesmcse
Copy link

Thank you very much!!!!!! The best !

@fmfpereira
Copy link

Simple but effective.

@jkozlick
Copy link

This is very nice, thank you, I was looking for a way to script this!
Since the curl statement in line 4 returns JSON, I used jq to parse it.

COMPOSE_VERSION=$(curl -s https://api.github.com/repos/docker/compose/releases/latest | jq -r '.tag_name')

@jonashackt
Copy link

I found a much simpler solution today, just use pip install docker-compose (just be sure to have pip package manager installed) and you´ll get the current Compose version installed.

@rjalexa
Copy link

rjalexa commented Feb 7, 2020

Thank you very much.

@dipuwork99
Copy link

Found this useful thanks.

@woosungchoi
Copy link

Thank you so much!

@steevivo
Copy link

I found a much simpler solution today, just use pip install docker-compose (just be sure to have pip package manager installed) and you´ll get the current Compose version installed.

It's not much simpler (be sure to have pip) , this batch is for everyone and it's more simpler for all user

@withakay
Copy link

withakay commented Feb 8, 2021

There is a simpler way to do this.
Github provides a method to link directly to the latest release, see here where it states "To link directly to a download of your latest release asset, link to /owner/name/releases/latest/download/asset-name.zip."

So for docker-compose we just need to use:
sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

@dolemoine
Copy link

really useful script after struggling for a long time with official doc ! Thx

@hizenburgxb
Copy link

This s so awesome thank you so very much for the script.

@bumbummen99
Copy link

If you do not want to use v2 you can use the following:
curl -s https://api.github.com/repos/docker/compose/releases | grep -e 'tag_name\": "1.' | cut -d\" -f4 | head -n 1

@williamhqs
Copy link

@withakay thanks it works! 👍

@deviantony
Copy link
Author

This is a 6y old gist :)

There's an easy way to install Compose nowadays in their documentation, I'd recommend using this approach instead: https://docs.docker.com/compose/install/

@mahdiZarepoor
Copy link

Thanks,
That was a piece of cake :)

@withakay
Copy link

Docker Desktop includes docker-compose these days, https://docs.docker.com/compose/install/compose-desktop/

@bumbummen99
Copy link

bumbummen99 commented Jul 16, 2022

Docker Desktop includes docker-compose these days, https://docs.docker.com/compose/install/compose-desktop/

You can even link docker-compose to the compose plugin in the docker folder for compatibility.

ln -s /usr/local/bin/docker-compose /usr/libexec/docker/cli-plugin/docker-compose

@hishayu
Copy link

hishayu commented Aug 22, 2022

Thanks so much!

@iThunderApp
Copy link

Great!! Thanks a lot!!!

@tpoxa
Copy link

tpoxa commented Jan 20, 2024

perhaps hash -r?

@HemanthGangula
Copy link

👍

@josvaler
Copy link

Thanks a lot, still working in 2024

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment