Introdução

A automação de processos de desenvolvimento é uma prática essencial para equipes que desejam aumentar a eficiência e reduzir erros manuais. Neste tutorial, vamos explorar como integrar scripts Bash com ferramentas de DevOps, como Docker e Jenkins, para criar um fluxo de trabalho de Integração Contínua e Entrega Contínua (CI/CD) eficaz. Aprenderemos a criar um projeto básico que utiliza Bash para automatizar a construção de uma imagem Docker e configurar um pipeline no Jenkins para gerenciar o ciclo de vida de desenvolvimento. Esta abordagem não apenas torna o processo de desenvolvimento mais ágil, mas também garante que as versões de software sejam implantadas de forma consistente e confiável.

Etapas

  1. Preparação do Ambiente de Desenvolvimento

    Certifique-se de que seu ambiente está preparado com as ferramentas necessárias. Instale o Docker e o Jenkins em sua máquina. Se você está utilizando o Linux, pode usar os seguintes comandos:

    commands
    # Instalar Docker
    sudo apt-get update
    sudo apt-get install docker.io
    # Iniciar e habilitar o serviço Docker
    sudo systemctl start docker
    sudo systemctl enable docker
    # Instalar Jenkins
    sudo apt install openjdk-11-jdk
    wget -q -O - https://pkg.jenkins.io/debian/jenkins.io.key | sudo apt-key add -
    echo 'deb http://pkg.jenkins.io/debian-stable binary/' | sudo tee /etc/apt/sources.list.d/jenkins.list
    sudo apt-get update
    sudo apt-get install jenkins

  2. Criação do Dockerfile

    Crie um arquivo chamado `Dockerfile` no diretório raiz do seu projeto. Este arquivo será responsável por definir como a imagem Docker será construída.

    Dockerfile
    FROM openjdk:11-jre-slim
    
    COPY target/meu-app.jar /usr/app/meu-app.jar
    
    WORKDIR /usr/app
    
    CMD ["java", "-jar", "meu-app.jar"]

  3. Criação do Script Bash para Construção da Imagem Docker

    Crie um script Bash chamado `build-docker.sh` que automatizará o processo de construção da imagem Docker para seu aplicativo. Esse script deve compilar o projeto e construir a imagem.

    build-docker.sh
    #!/bin/bash
    
    # Compilar a aplicação
    mvn clean package
    
    # Construir a imagem Docker
    docker build -t meu-app:latest .

  4. Configuração do Jenkins para Pipeline CI/CD

    Acesse a interface do Jenkins através de `http://localhost:8080`. Crie um novo item do tipo ‘Pipeline’. Dentro da configuração do pipeline, use o seguinte código para definir seu pipeline, que irá chamar seu script Bash.

    Jenkinsfile
    pipeline {
        agent any
    
        stages {
            stage('Build') {
                steps {
                    sh './build-docker.sh'
                }
            }
            stage('Deploy') {
                steps {
                    echo 'Deploying to Production...'
                    // Aqui você poderia adicionar um comando para fazer o deploy
                }
            }
        }
    }

  5. Execução do Pipeline

    Agora, você pode executar o pipeline no Jenkins. Vá para a página do seu pipeline e clique em ‘Build Now’. Isso irá acionar o script Bash e o Jenkins executará as etapas definidas.

    commands
    # Acesse o Jenkins no navegador
    http://localhost:8080
    # Clique em 'Build Now' no seu Pipeline configurado

  6. Verificação da Imagem Docker Gerada

    Após a execução bem-sucedida do pipeline, verifique se a imagem Docker foi criada.

    commands
    # Listar as imagens Docker disponíveis
    docker images

  7. Executar o Container Docker

    Inicie um novo container com a imagem que você acabou de construir. Isso permitirá que você teste seu aplicativo em um ambiente similar ao de produção.

    commands
    # Substitua <container-name> por um nome de sua escolha
    docker run -d -p 8080:8080 --name <container-name> meu-app:latest

  8. Testando a Aplicação em Execução

    Agora que o seu aplicativo está rodando dentro de um container Docker, você pode testá-lo. Utilize o seu navegador ou uma ferramenta como Postman para acessar a aplicação.

    commands
    # Acesse a aplicação no navegador
    http://localhost:8080

Conclusão

Neste tutorial, você aprendeu a integrar scripts Bash com Docker e Jenkins para automatizar rotinas de desenvolvimento, criando um pipeline CI/CD eficiente. O uso de scripts para controlar o processo de construção de imagens Docker e a implementação de um pipeline no Jenkins não apenas reduz o tempo de desenvolvimento, mas também melhora a confiabilidade e a qualidade do software implantado. Com essas ferramentas em sua caixa de ferramentas, você pode escalar e automatizar ainda mais seus projetos de software.

Hashtags

#Bash #Docker #Jenkins #CICD #DevOps #AutomaçãoDeProcessos