Skip to content

Instantly share code, notes, and snippets.

@roberson-miguel
Last active June 22, 2022 14:57
Show Gist options
  • Star 2 You must be signed in to star a gist
  • Fork 2 You must be signed in to fork a gist
  • Save roberson-miguel/743082726b5a6c30ac5294739d10ea15 to your computer and use it in GitHub Desktop.
Save roberson-miguel/743082726b5a6c30ac5294739d10ea15 to your computer and use it in GitHub Desktop.
Script para instalar Docker e Dependências, que já teste com imagem do Hello World.
#!/usr/bin/env bash
#Salve esse conteudo em um arquivo com o nome "install-docker.sh" ou outro de sua preferencia, e execute em um terminal
#usando "sh install-docker.sh"
executa_imagem=$()
echo "Removendo versões antigas do Docker...\n"
sudo apt-get remove -y docker docker-engine docker.io containerd runc > /dev/null
echo "Atualizando pacotes...\n"
sudo apt-get update > /dev/null
echo "Instalando certificados...\n"
sudo apt-get install ca-certificates curl gnupg lsb-release > /dev/null
echo "Adicionando chaves...\n"
curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.gpg --create-dirs | sudo gpg --batch --yes --dearmor -o /etc/apt/keyrings/docker.gpg > /dev/null
echo "Configurando repositorio...\n"
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable \n" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
echo "\nAtualizando sistema após instalação...\n"
sudo apt-get update > /dev/null
echo "Definido permissões no arquivo de definições para instalação do Docker...\n"
sudo chmod a+r /etc/apt/keyrings/docker.gpg
echo "Executando instalação Docker e dependencias...\n"
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin > /dev/null
echo "Executando imagem... Se voce ver log abaixo escrito: 'Hello from docker' sua instalação está ok! \n"
sudo docker run hello-world
@maurobaraldi
Copy link

Sugestões

  • Se voc estiver usando o curl com uma versão maior que a 7.10.3 (muito provavelmente você estará, pois ela é de 2003), pode usar a opção create-dirs (https://curl.se/docs/manpage.html#--create-dirs) com isso vc ganha um passo.
    Exemplo: curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.gpg --create-dirs

  • Adicione o -y nos seus comandos apt (get , remove, ...) assim ele não vai bloquear o seu scipt esperando interação do usário.
    Exemplo: sudo apt-get remove -y docker

  • E se você rodasse o comando logo após o echo, em vez de guarda-lo em um container (variável) e depois executar. Seu script pode ficar mais limpo e mais fácil de fazer a manutenção.

@maurobaraldi
Copy link

Veja o que você acha desse modo https://gist.github.com/maurobaraldi/4c3ab593becbc8dcc9f71e9d51b5b140
IMH, fica mais claro e a descrição, que eu achei ótima a idéia, ja fica de documentação do comando!

@roberson-miguel
Copy link
Author

Já vou atualizar aqui Mano.. Obrigado pelas sugestões!

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