Criando um container com o Docker
Criando um container com o Docker
O Docker é uma plataforma de código aberto que facilita a criação, o gerenciamento e a execução de containers. Ele permite que você empacote uma aplicação e suas dependências em um container, garantindo que ela funcione em qualquer ambiente.
Para garantir que o nosso container seja seguro, escalável e disponível, seguimos boas práticas de segurança, escalabilidade, disponibilidade, automação e entrega contínua.
Reduzimos o tamanho da imagem com o multi-stage build
, utilizamos imagens oficiais com garantia de procedência, como imagem base a cgr.dev/chainguard/python*
, uma imagem miníma do Python. Afinal, quanto menor a imagem, menor a superfície de ataque.
Para atestar a qualidade do nosso Dockerfile
, utilizamos o hadolint
, um linter para Dockerfiles que verifica se o arquivo está seguindo as melhores práticas.
Para garantir que o container seja seguro, utilizamos o docker scout
, uma ferramenta de segurança que verifica se a imagem possui vulnerabilidades conhecidas.
E para ter outra verificação de segurança, utilizamos o trivy
, uma ferramenta de análise de vulnerabilidades para imagens de contêineres.
Para instalar a ferramenta trivy
, execute o comando:
Verificando a qualidade do Dockerfile com o hadolint
:
O output é algo parecido com:
A partir dessas informações é possível corrigir o Dockerfile para seguir as melhores práticas.
Agora vamos construir a imagem Docker. Para isso, execute o comando:
Para disponibilizar a imagem no Docker Hub, execute o comando:
Para verificar se a imagem foi disponibilizada com sucesso, acesse o Docker Hub.
Verificando se a imagem possui vulnerabilidades conhecidas com o trivy
:
Verificando se a imagem possui vulnerabilidades conhecidas com o docker scout
:
O resultado das análises está disponível em /screenshots
.
Se você chegou até aqui é sabido que a aplicação depende do Redis, por isso resolvemos construir uma imagem para ele até o momento sem vulnerabilidades conhecidas.
Para construir a imagem do Redis, execute o comando:
Para disponibilizar a imagem no Docker Hub, execute o comando:
Agora que você sabe como verificar a qualidade e a segurança de uma imagem Docker, pode aplicar essas práticas em seus projetos. E não esqueça de utilizar o .dockerignore
para evitar a inclusão de arquivos desnecessários na imagem.
Construí uma pipeline de CI/CD para automatizar a construção e a disponibilização das imagens Docker. Para isso, utilizei o GitHub Actions, uma ferramenta de integração contínua e entrega contínua que permite automatizar tarefas e fluxos de trabalho. O arquivo de configuração da pipeline está disponível em .github/workflows/giropops-docker.yml
. Clique aqui para visualizar o resultado da execução da pipeline.
Para experimentar a aplicação execute o docker-compose na raiz do projeto:
Acesse a aplicação em http://localhost:5000/
.
Isso foi tudo! Obrigada por acompanhar o projeto até aqui. 🚀
Last updated