Skip to content

Instantly share code, notes, and snippets.

@roberson-miguel
Last active June 22, 2022 14:57
Show Gist options
  • Select an option

  • Save roberson-miguel/743082726b5a6c30ac5294739d10ea15 to your computer and use it in GitHub Desktop.

Select an option

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
Copy Markdown

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
Copy Markdown

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
Copy Markdown
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