Ir para o conteúdo
  • Empresa
    • SOBRE NÓS
    • TRABALHE CONOSCO
  • Soluções
    CONSULTORIA CLOUD
    • GET STARTED
    • DESIGN
    • IMPLANTAÇÃO
    MIGRAÇÃO
    SQUAD AS A SERVICE
    WELL ARCHITECTED
    SEGURANÇA E COMPLIANCE
    • ASSESSMENT DE VULNERABILIDADE
    • CENTRO DE OPERAÇÕES DE SEGURANÇA (SOC)
    • ASSESSMENT LGPD
    • UTM - GERENCIAMENTO UNIFICADO DE AMEAÇAS
    BIG DATA & MACHINE LEARNING
    • Analytics
    • AI/ML
    SERVIÇOS GERENCIADOS
    • MONITORAMENTO E SUPORTE 24X7
    • DAREDE MSP
    • GERENCIAMENTO DEVOPS
    • GERENCIAMENTO DEVSECOPS
    • GERENCIAMENTO FINOPS
    • GERENCIAMENTO DE BANCO DE DADOS
    • GERENCIAMENTO DE PABX IP
    • LICENCIAMENTO DE SOFTWARE
    COMPETÊNCIAS AWS
    • AWS CLOUD FRONT
    • AWS AURORA
    • AMAZON RDS
    • DEVOPS
    • MICROSOFT WORKLOADS
    • MIGRATION
    • PUBLIC SECTOR
    • PUBLIC SECTOR NPO
    • PUBLIC SECTOR EDUCATION
    • WELL ARCHITECTED
    • VMWARE CLOUD ON AWS
    • API GATEWAY
    • LAMBDA
    • NETWORKING ON AWS
    • FINANCIAL SERVICES
  • Cases
  • Blog
Darede Portugal
  • Fale Conosco
  • Canal Compliance
  • Seja Parceiro Autorizado
Veja mais um artigo da série sobre Docker escrito pelo nosso #cloudspecialist Thiago Marques, dessa vez entenda como fazer o build do Dockerfile!

O pai ta on!!
Em nosso último post falamos sobre o Dockerfile, e apresentamos um exemplo de suas funcionalidades. Hoje aprenderemos como criar o build do arquivo, já com uma aplicação CRUD em pleno funcionamento.
Para isso utilizaremos a base de um CRUD de cadastro de clientes em python e flask criado pelo Moises Abraão, e contemplaremos no Dockerfile os passos:

1. Fazer o upgrade dos pacotes do SO;
2. Instalar os requisitos para a aplicação (banco, python e flask);
3. Copiar os arquivos do github para dentro do container;
4. Configurar a aplicação com os parâmetros necessários;
5. Efetuar o deploy da aplicação;

Processo de build do Dockerfile


Fonte: Clique aqui

Para iniciar o processo do build, copie as informações abaixo, e salve em um arquivo chamado Dockerfile.

FROM ubuntu:latest

#define o responsável pela aplicação
LABEL maintainer=”Thiago Marques”

#Atualiza o SO
RUN apt-get update && apt-get upgrade -y

#Instala o python3, pip3 e o git
RUN apt-get install python3 python3-pip git -y

#clona o APP
RUN git clone https://github.com/thiagosagara/CRUD-FLASK-PYTHON.git /opt/CRUD-FLASK-PYTHON/

#vai para o diretório principal
WORKDIR /opt/CRUD-FLASK-PYTHON/

#Instala o aplicativo
RUN pip3 install -r requirements.txt
RUN python3 -m flask db init && python3 -m flask db migrate && python3 -m flask db upgrade

#Expoe a porta 80 (apenas para documentação)
EXPOSE 80

# Entra na pasta do app (só é executado quando iniciamos o container)
CMD [“python3”, “wsgi.py”]

Após salvar o arquivo iniciarmos o processo do build, com o comando:
docker build -t thiagosagara/myapp:1.0 .

Nesse comando usamos a opção ‘-t’ para definir a tag, que seria basicamente a versão da aplicação. Nesse caso 1.0.
Note que também existe um ponto (.) no final do comando, que referência o diretório onde o build será efetuado. O build procura o arquivo Dockerfile, caso ele tenha outro nome e/ou não está na mesma pasta, você pode usar a opção ‘-f’ e indicar o diretório.

Após a execução do comando para cada instrução será gerado um passo (step):


Após o término do build, será provisionado no repositório local a nova imagem:

Com isso vamos agora criar um container com essa imagem. Note que quando criamos a instrução de CMD que existe no Dockerfile aparece no ‘COMMAND’ do container, ou seja, vai ser o comando que vai iniciar quando criamos o container. Nesse caso usamos para iniciar a aplicação, mas poderia ser simplesmente um ‘/bin/bash’.

Após subir o container podemos visualizar os logs com o comando docker logs . No nosso exemplo conseguimos ver os métodos do HTTP e os códigos do protocolo ao passo que vamos navegando pela aplicação.

Abaixo os screenshots da aplicação:


Boas práticas no Dockerfile

É importante notar que ao criar uma imagem com tudo que você precisa, é possível deixá-la grande, e onerar o processo de atualização da aplicação. Lembre-se sempre que a ideia de usar container é justamente para garantir a utilização dos recursos de forma mais eficiente. Se você vai utilizá-lo para criar um monolito em container, talvez não faça tanto sentido.

Assim existe algumas boas práticas que devem ser observadas, como:

1. Crie containers efêmeros.
• Você precisa garantir que pode parar, destruir e reconstruir um container com o mínimo de setup possível.
2. Entenda o processo que sua aplicação faz antes de construir uma imagem;
• Anote o ‘passo-a-passo’ do que você precisa fazer para a aplicação estar disponível depois que sobe a base do container. O que normalmente faço, é subir um container sem nada, e ir instalando o que preciso até estar da forma que quero. Depois, analiso o history da máquina e coleto os comandos que utilizei para criar o dockerfile.
3. Não instale pacotes desnecessários;
• Nem todo pago que você considera legal pode ser interessante instalar. Cada pacote instalado aumenta a complexidade e tamanho da imagem final.
4. Desacople o máximo possível a aplicação;
• Deixe o container mais próximo de um microserviço, isso vai te ajudar em desde esteiras de desenvolvimento a upgrades da aplicação de forma segmentada (lembre-se que o próprio docker segmentou os runtimes para facilitar as coisas);
5. Minimize a quantidade de layers(steps) do build;
• Não precisa criar um RUN para cada yum install que você precisa na aplicação.
A dica aqui é, use o RUN com documentação de cada estágio, por exemplo: um RUN para atualizar o SO, um para instalar os programas e um para o deploy da aplicação.

Veja os outros artigos sobre Docker!
Entendendo Docker
Docker Compose – Gerenciamento e deploy de imagens
Arquitetura Docker
O que é DockerFile?
That’s all folks! Be Happy!!!

  • AWS, Container, Containers, Contêiner, Contêineres, Docker, Docker Compose, Docker Hub, DockerFile

OUTRAS PUBLICAÇÕES

Amazon VPC IP Address Manager

Quer aprender mais sobre como funciona e a importância Amazon VPC IP Address Manager? Acompanhe o Blog abaixo.

Novidades da AWS – Segurança: 11 de junho a 11 de julho

Os #cloudspecialists da Darede reuniram as principais novidades de Segurança da AWS! Confira quais são elas e como elas podem te ajudar!

Gerenciamento de senhas no Azure Active Directory

Entenda de forma prática como gerenciar as senhas de usuários no Azure Active Directory

Data Lake vs Data Warehouse

Você sabe a diferença entre Data Lake e Data Warehouse? Então confira esse artigo do blog da Darede que traz tudo sobre esses conceitos.

O que é Infrastructure as Code (IaC)?

A Infrastructure as Code é um modo de automatizar o provisionamento da infraestrutura de TI e aliada com a cultura DevOps pode ser de grande ajuda para as empresas. Confira o artigo do blog sobre esse conceito.

As 3 melhores ferramentas para filtrar URLs

O Web Filter é capaz de aumentar a segurança de seu ambiente pois ele limita os websites acessadis. Veja um artigo sobre esse recurso!

« Anterior Página1 Página2 Página3 Página4 Página5 Página6 Página7 Página8 Página9 Página10 Próxima »
  • Alameda Araguaia, 2044 - Bloco 1 - CJ 210/211
    06455-000 - Alphaville,
    Barueri São Paulo - Brasil
  • +55 11 3900-1010 | 3995-6919
Acesse Darede Portugal
Darede Portugal

Conecte-se conosco

  • E-books
  • Blog

Mais

  • Fale Conosco
  • Canal Compliance
  • Seja Parceiro Autorizado
  • Governança Corporativa

newsletter

  • Política de Privacidade e Cookies
  • Perguntas Frequentes
© Copyright 2025 Darede à nuvem
Todos os direitos reservados | By Damidia Marketing & Conteúdo

Nós usamos cookies para garantir e oferecer a melhor experiência de navegação em nosso site! Mais informações

ACEITAR & FECHAR
RECUSAR