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

Novidades da AWS – Data: 27 de maio a 27 de junho

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

Novidades AWS – Compute & Networking/Data: 07 de outubro a 14 de novembro

Os #cloudspecialists da Darede reuniram as principais novidades de Compute & Networking e Data da AWS! Confira quais são elas e como elas podem te ajudar!

Seu Office 365 é seguro?

Você já parou para pensar nisso? Confira o artigo que reforça a importância de se investir na segurança das informações da sua empresa.

Novidades da Semana da AWS – 09 a 13 de novembro

Todos os dias a AWS lança uma série novidades e atualizações em seus produtos que visam melhorar a vida de seus usuários. Veja as da última semana!

Solução Home Office – Amazon Wokspaces

Confira o artigo de Matheus Arantes que traz soluções para empresas que tiveram que mudar para o home office da noite para o dia.

Novidades da semana – 19 a 23 de outubro

Todos os dias a AWS lança uma série novidades e atualizações em seus produtos que visam melhorar a vida de seus usuários. Veja as da última semana!

« 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