Compartilhando conhecimento com o mundo

Com tecnologia do Blogger.

Pesquisa

Download

Blogger Tricks

Blogger Themes

Visitas

Assuntos

8/23/2026

Script da Rotina do Nosso Ambiente Docker


A automação de rotinas de infraestrutura e controle de versão é um divisor de águas na rotina do time de desenvolvimento. O uso de um script Shell interativo simplifica operações diárias relacionadas ao Docker e ao Git, trazendo padronização, agilidade e redução de erros operacionais. A substituição de sequências de comandos no terminal por uma interface por menu simplifica as tarefas diárias da equipe. O processo de versionamento é padronizado e a dependência da memorização de sintaxes complexas
-------------------------------------------------------------------------------------------------
03/10/2026                        ***** DOCKER BASIC SERVICES *****                      17:15:24
-------------------------------------------------------------------------------------------------
                                         Docher Atual: [HOM]

-------------------------------------------------------------------------------------------------
                      1 - TRANSFERIR ARQUIVOS                                                    
                      2 - MUDAR HOMOLOGACAO/PRODUCAO                                             
                      3 - SYSTEM STATUS                                                          
                      4 - GIT PULL                                                               
                      0 - EXIT DOCKER                                                            
-------------------------------------------------------------------------------------------------

   Escolha uma opção: 


Script para rodar no Linux

#!/bin/bash

cd ~/Documentos/Docker/k0522-passagem-de-turno/

# Criamos um loop infinito que só para quando o comando 'break' for acionado
while true; do
    # Verifica se a pasta atual é um repositório Git e pega o nome da branch
    if git rev-parse --is-inside-work-tree > /dev/null 2>&1; then
        # Pega a branch atual e transforma em MAIÚSCULO (ex: hom vira HOM)
        BRANCH_ATUAL=$(git branch --show-current | tr '[:lower:]' '[:upper:]')
        STATUS_REPO="Docher Atual: [$BRANCH_ATUAL]"
    else
        STATUS_REPO="Fora de um repositório Git"
    fi
    clear
echo "-------------------------------------------------------------------------------------------------"
echo -n
echo -n "$(date "+%d/%m/%Y")"
echo -n "      "
echo -n "                  ***** DOCKER BASIC SERVICES *****   "
echo -n "                   "
echo "$(date "+%T")"
echo "-------------------------------------------------------------------------------------------------"
echo "                                         $STATUS_REPO"
echo
echo "-------------------------------------------------------------------------------------------------"
echo "                      1 - TRANSFERIR ARQUIVOS                                                    "
echo "                      2 - MUDAR HOMOLOGACAO/PRODUCAO                                             "
echo "                      3 - SYSTEM STATUS                                                          "
echo "                      4 - GIT PULL                                                               "
echo "                      0 - EXIT DOCKER                                                            "
echo "-------------------------------------------------------------------------------------------------"
echo 
    read -p "   Escolha uma opção: " opcao
    echo "" # Linha em branco para organizar o visual

    case $opcao in

# ------------------------------------------------------------------------------------------------
# ------------------------------------------------------------------------------------------------
 	    
1) # Commitar e dar push
cd ~/Documentos/Docker/k0522-passagem-de-turno/            
date 
git status 
git add . 
git commit -m "$(date '+%d/%m/%Y as %H:%M')" 
git push
echo
echo -e "\nLimpando a tela em 1 segundos..."
# Aguarda 1 segundos e sai da tela
# sleep 1
# Limpa o terminal
# clear
;;

# ------------------------------------------------------------------------------------------------
# ------------------------------------------------------------------------------------------------

 2) # Mudar de branch
 cd ~/Documentos/Docker/k0522-passagem-de-turno/ 
 clear
echo "-------------------------------------------------------------------------------------------------"
echo -n
echo -n "$(date "+%d/%m/%Y")"
echo -n "      "
echo -n "                  ***** DOCKER BASIC SERVICES *****   "
echo -n "                   "
echo "$(date "+%T")"
echo "-------------------------------------------------------------------------------------------------"
echo "                                       $STATUS_REPO"
echo
echo "-------------------------------------------------------------------------------------------------"
echo " Para qual Docker deseja mudar?                   "
echo
echo " 1 - Homologação (hom)                            "
echo " 2 - Produção (prd)                               "
echo "-------------------------------------------------------------------------------------------------"
echo
read -p "Escolha uma das Opções: " branch
           
if [ "$branch" = "1" ]; then
   git switch hom
elif [ "$branch" = "2" ]; then
  git switch prd
else
echo "Branch inválida!"
fi
echo
echo -e "\nLimpando a tela em 1 segundos..."
# Aguarda 1 segundos e sai da tela
sleep 1
# Limpa o terminal
clear
;;

# ------------------------------------------------------------------------------------------------
# ------------------------------------------------------------------------------------------------

3) # git status
cd ~/Documentos/Docker/k0522-passagem-de-turno/
git status
echo
read -p "Pressione Enter para voltar..."
;;

# ------------------------------------------------------------------------------------------------
# ------------------------------------------------------------------------------------------------

4)
    echo -e "=== Sincronizando o repositório Docker ===\n"
    
    # 1. Entra no diretório
    cd ~/Documentos/Docker/k0522-passagem-de-turno/ || { echo "Erro: Diretório não encontrado!"; break; }

    # 2. Mostra o status atual antes de puxar as alterações
    echo -e "\n--> Verificando status do Git..."
    git status -s

    # 3. Executa o git pull sem abrir editores interativos em caso de merge
    echo -e "\n--> Baixando atualizações do servidor (git pull)..."
    GIT_TERMINAL_PROMPT=0 git pull --no-rebase --no-edit

    # Check de erro do Git
    if [ $? -eq 0 ]; then
        echo -e "\n[SUCESSO] Repositório sincronizado com sucesso!"
    else
        echo -e "\n[ERRO] Falha ao sincronizar o Git. Verifique suas credenciais ou conflitos locais."
    fi

    # 4. Pausa interativa para você LER o resultado antes de limpar a tela
    echo
    read -p "Pressione [ENTER] para retornar ao menu..."
    clear
    ;;

# ------------------------------------------------------------------------------------------------
# ------------------------------------------------------------------------------------------------

0) # echo "Saindo do programa... Até logo!"
break # Quebra o loop e encerra o script
clear
;;

# ------------------------------------------------------------------------------------------------
# ------------------------------------------------------------------------------------------------

*)
echo "Opção inválida! Tente novamente."
clear
;;
    esac
    
    echo "" # Outra linha em branco antes de reiniciar o menu
done

0 comentários:

Enviar um comentário