sh install-docker.sh- log out
- log back in
The script was assembled using the official Docker docs:
sh install-docker.shThe script was assembled using the official Docker docs:
| #!/bin/sh | |
| set -o errexit | |
| set -o nounset | |
| IFS=$(printf '\n\t') | |
| # Docker | |
| sudo apt remove --yes docker docker-engine docker.io containerd runc || true | |
| sudo apt update | |
| sudo apt --yes --no-install-recommends install apt-transport-https ca-certificates | |
| wget --quiet --output-document=- https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - | |
| sudo add-apt-repository --yes "deb [arch=$(dpkg --print-architecture)] https://download.docker.com/linux/ubuntu $(lsb_release --codename --short) stable" | |
| sudo apt update | |
| sudo apt --yes --no-install-recommends install docker-ce docker-ce-cli containerd.io | |
| sudo usermod --append --groups docker "$USER" | |
| sudo systemctl enable docker | |
| printf '\nDocker installed successfully\n\n' | |
| printf 'Waiting for Docker to start...\n\n' | |
| sleep 5 | |
| # Docker Compose | |
| sudo wget --output-document=/usr/local/bin/docker-compose "https://github.com/docker/compose/releases/download/$(wget --quiet --output-document=- https://api.github.com/repos/docker/compose/releases/latest | grep --perl-regexp --only-matching '"tag_name": "\K.*?(?=")')/run.sh" | |
| sudo chmod +x /usr/local/bin/docker-compose | |
| sudo wget --output-document=/etc/bash_completion.d/docker-compose "https://raw.githubusercontent.com/docker/compose/$(docker-compose version --short)/contrib/completion/bash/docker-compose" | |
| printf '\nDocker Compose installed successfully\n\n' |
@tddschn Thanks! I added || true to ignore apt remove errors.
Not work for Docker Compose v2
compose_release() { curl --silent "https://api.github.com/repos/docker/compose/releases/latest" #@| grep -Po '"tag_name": "\K.*?(?=")' } if ! [ -x "$(command -v docker-compose)" ]; then curl -L https://github.com/docker/compose/releases/download/$(compose_release)/docker-compose-$(uname -s)-$(uname -m) \ -o /usr/local/bin/docker-compose && chmo
Current script fails on docker compose
`Docker installed successfully
Waiting for Docker to start...
--2021-12-02 08:25:56-- https://github.com/docker/compose/releases/download/v2.1.1/run.sh
Resolving github.com (github.com)... 140.82.121.4
Connecting to github.com (github.com)|140.82.121.4|:443... connected.
HTTP request sent, awaiting response... 404 Not Found
2021-12-02 08:25:56 ERROR 404: Not Found.`
running compose version also returns permissions denied
docker-compose --version
-bash: /usr/local/bin/docker-compose: Permission denied
The link to run.sh seems broken
--2021-12-19 11:45:04-- https://github.com/docker/compose/releases/download/v2.2.2/run.sh
Resolving github.com (github.com)... 140.82.121.3
Connecting to github.com (github.com)|140.82.121.3|:443... connected.
HTTP request sent, awaiting response... 404 Not Found
2021-12-19 11:45:04 ERROR 404: Not Found.
@decentraliser yes the link is broken, since the 2.x rework in GoLang the auto completion script was removed
I suggest we remove the auto completion install form the script
Reference:
docker/docs#14692 (comment)
docker/cli#3429 (review)
#!/bin/sh
set -o errexit
set -o nounset
IFS=$(printf '\n\t')
# Docker
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
printf '\nDocker installed successfully\n\n'
printf 'Waiting for Docker to start...\n\n'
sleep 5
# Docker Compose
COMPOSE_VERSION=$(curl -s https://api.github.com/repos/docker/compose/releases/latest | grep 'tag_name' | cut -d\" -f4)
sudo curl -L https://github.com/docker/compose/releases/download/${COMPOSE_VERSION}/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
sudo curl -L https://raw.githubusercontent.com/docker/compose/${COMPOSE_VERSION}/contrib/completion/bash/docker-compose > /etc/bash_completion.d/docker-compose
printf '\nDocker Compose installed successfully\n\n'
sudo docker-compose -v
@EvgenyOrekhov The error code is
100(tested).From
apt.1: apt returns zero on normal operation, decimal 100 on error.It seems that
apt removea package that is not installed throws and error on apt version 2.2.3, but there's no error on 2.2.4.