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
    • MSSP
    • SECAAS
    • OFFENSIVE ACTIONS
    • SRT
    • REVENDA
    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: Compute & Networking – 23 de abril a 23 de maio

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

Novidades AWS re:Invent 2020 – 03/12

Acompanhe todas as novidades da re:Invent 2020, a maior conferência de desenvolvedores da AWS que, neste ano acontece de forma remota. Confere aí!

Gerenciamento de senhas no Azure Active Directory

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

Descomplicando Rede e Conectividade – Parte 1

Confira a segunda parte do artigo sobre Descomplicando redes e conectividade. Escrito por Flávio Rescia

Novidades da AWS – 21 a 25 de março

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

Amazon Appstream – Integrar imagens ao Active Directory

Veja de forma prática como podemos integrar imagens do Amazon Appstream ao Active Directory! Artigo de José Anderson Vila Nova

« Anterior Página1 Página2 Página3 Página4 Página5 Página6 Página7 Página8 Página9 Página10 Próxima »
  • E-books
  • Blog
Conecte-se conosco
Mais
  • Fale Conosco
  • Canal Compliance
  • Seja Parceiro Autorizado
  • Governança Corporativa

Escritórios

  • Alameda Araguaia, 2044 - Bloco 1 - CJ 210/211 06455-000 - Alphaville, Barueri São Paulo - Brasil
  • Dabi Business Park - R. Gen. Augusto Soares dos Santos, 100 - Parque Industrial Lagoinha Ribeirão Preto, São Paulo, 14095
  • Avenida Bombeiros Voluntários de Algés 44 Lisbon , Algés, 1495 Oeiras
  • +55 11 3900-1010 | 3995-6919
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