0Pricing
DevOps Bootcamp · Aula

Criação de Imagens Docker com Jenkins

Configure tarefas do Jenkins para criar e enviar automaticamente imagens Docker a um registro após alterações no código.

Criação de Imagens Docker com Jenkins é uma aula grátis de DevOps Bootcamp no CoddyKit. Esta é a aula 2 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de DevOps Bootcamp, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de DevOps Bootcamp inclui 4 aulas no total.

Automatizando compilações do Docker

Compilar imagens do Docker manualmente pode ser demorado, inconsistente e sujeito a erros. Isso é especialmente verdadeiro em um ambiente de equipe ou quando há alterações frequentes no código.

A automação é fundamental para uma entrega de software confiável e eficiente. Nesta lição, aprenderemos a integrar o Jenkins ao Docker para automatizar a criação e o envio de imagens.

Criação de Imagens Docker com Jenkins — ilustração 1

Pré-requisitos do Jenkins e do Docker

Para que o Jenkins compile imagens do Docker, ele precisa interagir com um daemon do Docker. Isso significa que o cliente do Docker deve estar instalado na máquina ou no agente em que o trabalho do Jenkins será executado.

Você também precisará de:

  • Um servidor Jenkins em execução (da Lição 1)
  • Acesso a um registro do Docker (por exemplo, o Docker Hub)
  • Uma aplicação de exemplo e seu Dockerfile

Instalação do Docker no host do Jenkins

Para permitir que o Jenkins execute comandos do Docker, certifique-se de que o Docker esteja instalado e configurado no servidor ou agente do Jenkins. O usuário do Jenkins frequentemente precisa de permissões para interagir com o daemon do Docker.

Veja como configurá-lo em um sistema Linux:

sudo apt-get update
sudo apt-get install -y docker.io
sudo usermod -aG docker jenkins
sudo systemctl restart docker
sudo systemctl restart jenkins

Protegendo as credenciais do registro

Para enviar imagens para um registro do Docker, o Jenkins precisa de credenciais. É essencial armazená-las com segurança, e não diretamente no seu Jenkinsfile ou na configuração do trabalho.

O recurso integrado de Credenciais do Jenkins é perfeito para isso:

  • Acesse Gerenciar Jenkins > Gerenciar credenciais.
  • Adicione uma nova credencial de Nome de usuário com senha para o seu registro do Docker.
  • Atribua a ela um ID descritivo (por exemplo, dockerhub-credentials) para referenciá-la posteriormente.

Aplicativo Flask de exemplo

Vamos usar um aplicativo Flask muito simples em Python. Vamos colocá-lo em um arquivo chamado app.py. Ele exibirá uma mensagem básica de «Hello».

Também precisaremos de um arquivo requirements.txt para especificar nossas dependências do Python.

# app.py
from flask import Flask
app = Flask(__name__)

@app.route('/')
def hello_world():
    return 'Hello from CoddyKit!'

if __name__ == '__main__':
    app.run(debug=True, host='0.0.0.0', port=5000)

# requirements.txt
Flask==2.0.2

Criando o Dockerfile

Em seguida, definiremos nossa imagem do Docker usando um Dockerfile. Esse arquivo instruirá o Docker sobre como criar a imagem do nosso aplicativo.

Coloque este Dockerfile no mesmo diretório que app.py e requirements.txt.

# Dockerfile
FROM python:3.9-slim-buster
WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY app.py .
EXPOSE 5000
CMD ["python", "app.py"]

Trabalho do Jenkins: etapa de compilação

Agora, vamos configurar um trabalho Freestyle do Jenkins. Na seção Etapas de compilação, adicione uma etapa Executar shell. Esse comando criará sua imagem do Docker.

Lembre-se de substituir yourusername pelo seu nome de usuário do Docker Hub ou pelo caminho do registro.

# In Jenkins 'Execute shell' build step:
docker build -t yourusername/coddykit-app:latest .

Trabalho do Jenkins: etapa de login e envio

Depois de criar a imagem, precisamos enviá-la para o nosso registro do Docker. Normalmente, isso exige fazer login. Usaremos as credenciais armazenadas anteriormente.

Adicione outra etapa Executar shell. Se estiver configurado corretamente, o Jenkins injetará as credenciais como variáveis de ambiente (por exemplo, DOCKER_USER, DOCKER_PASS).

# In Jenkins 'Execute shell' build step:
echo $DOCKER_PASS | docker login -u $DOCKER_USER --password-stdin
docker push yourusername/coddykit-app:latest

Automatizando os acionadores de compilação

O poder da CI/CD vem da automação. O Jenkins pode acionar automaticamente esses trabalhos de compilação e envio com base em vários eventos:

  • Consulta do SCM: O Jenkins verifica periodicamente se há novos commits no seu repositório Git.
  • Webhooks: Seu provedor Git (GitHub, GitLab, Bitbucket) envia uma notificação ao Jenkins sempre que o código é enviado.
  • Projetos upstream: Acionados após a conclusão bem-sucedida de outro trabalho do Jenkins.

Testando o trabalho do Jenkins

Depois de configurar as etapas de compilação e os acionadores, salve o trabalho do Jenkins. Você pode acionar manualmente uma compilação para testá-la. Observe a saída do console para confirmar a criação e o envio bem-sucedidos da imagem do Docker.

Uma execução bem-sucedida significa que seu pipeline de CI agora pode produzir e armazenar automaticamente novas imagens do Docker sempre que o código for alterado!

Verificação rápida

Você configurou um trabalho do Jenkins para criar e enviar uma imagem do Docker. Seu repositório Git tem novas alterações de código.

Recapitulação: compilação e envio

Ótimo trabalho! Nesta lição, você aprendeu a:

  • Preparar seu ambiente do Jenkins para interagir com o Docker.
  • Gerenciar com segurança as credenciais do registro do Docker no Jenkins.
  • Configurar um trabalho do Jenkins para criar uma imagem do Docker usando um Dockerfile.
  • Enviar a imagem recém-criada para um registro do Docker.
  • Entender diferentes formas de acionar compilações automatizadas.

Automatizar essas etapas é uma parte essencial da Integração Contínua e prepara o caminho para a Entrega Contínua!

Perguntas Frequentes

A aula “Criação de Imagens Docker com Jenkins” é grátis?

Sim — o texto completo de “Criação de Imagens Docker com Jenkins” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de DevOps Bootcamp, atualize para CoddyKit PRO. O curso de DevOps Bootcamp inclui 4 aulas no total.

O que vou aprender em “Criação de Imagens Docker com Jenkins”?

Configure tarefas do Jenkins para criar e enviar automaticamente imagens Docker a um registro após alterações no código. Você pratica DevOps Bootcamp com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar DevOps Bootcamp?

Nenhuma experiência prévia é necessária. DevOps Bootcamp no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 2 de 4.

Quanto tempo leva a aula “Criação de Imagens Docker com Jenkins”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de DevOps Bootcamp?

Sim. Cada aula de DevOps Bootcamp inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Introdução ao Jenkins
  2. Criação de Imagens Docker com Jenkins
  3. Implantação Automatizada com Jenkins
  4. Pipeline do Jenkins como código com Jenkinsfile
← Voltar para DevOps Bootcamp