Continuando nossa série sobre Docker e containers, nosso #cloudspecialist Thiago Marques está de volta para explicar o conceito de DockerFile

O pai tá on!!
Após uma pequena explicação da arquitetura do docker, podemos avançar em pontos mais interessantes, por isso agora falaremos sobre como criar nossas próprias imagens.
Vamos utilizar um exemplo de uma aplicação simples de CRUD que efetua cadastro de clientes, e já estamos utilizando um container em ubuntu. Contudo algumas coisas ainda são manuais e demandam muito tempo para realizar o deploy como:
1. Fazer o upgrade dos pacotes do SO;
2. Instalar os requisitos para a aplicação (banco, python e flask);
3. Copiar os arquivos da aplicação para dentro do container;
4. Configurar a aplicação com os parâmetros necessários;
5. Efetuar o deploy da aplicação;
Veja que todas essas alterações feitas depois que se sobe o container levam tempo, e partindo de uma lógica que uma das razões de utilizá-lo é justamente para se ganhar agilidade, acaba se tornando contra produtivo.
Assim, para otimizar esses trabalhos, vamos construir uma imagem com base no ubuntu já com nossa aplicação instalada utilizando o Dockerfile para fazer o build.

O que é DockerFile, e como funciona?

Dockerfile é a forma de criar nossas próprias imagens, com as características necessárias para a aplicação funcionar. Lembre-se que uma IMAGEM é imutável, seria como se fosse um template para subir um container, ou seja, você sempre vai precisar de uma imagem para realizar essa ação.
Ele funciona basicamente como um ‘livro de receitas’ onde é executada cada instrução em top-down, criando para cada instrução um step. Depois do arquivo criado, você executa o build, que criará uma nova imagem, e assim poderá utilizar a imagem já pronta com sua aplicação.

Fonte

Instruções no Dockerfile

Existem diversas instruções que podem ser usadas no dockerfile, contudo vamos focar nas principais. Para isso utilizaremos o exemplo abaixo:

Agora analisando cada comando/instrução dentro do Dockerfile, temos:
• FROM
o Instrução obrigatória. É nela que temos a imagem base. Entenda ela como o SO que você vai utilizar no container, sendo que ele já pode vir com alguma aplicação instalada (um node.js por exemplo).
• LABEL:
o Insere um metadado na imagem. Nesse caso adicionei quem é o responsável pela aplicação.
• RUN:
o Instrução para rodar comandos dentro do container, e pode ser utilizada mais de uma vez. Todos os comandos que você utiliza o RUN são executados na criação da imagem, e não na criação do container. Assim você não precisa executá-los novamente quando o container é criado.
• EXPOSE:
o Instrução um tanto quando interessante. Ela tem uma função diferente do docker-compose, onde de fato você expõe a porta da aplicação. No Dockerfile, ela NÃO faz isso. Aqui ela basicamente funciona para documentar em qual porta a aplicação vai funcionar. Para expor de fato a porta você vai precisar do ‘-p’ no docker run, ou do expose no docker-compose.
• WORKDIR:
o Instrução que indica em qual pasta as instruções de CMD, RUN, ADD, COPY etc. vão usar para executar suas tarefas. Ela também vai servir para definir qual diretório será aberto quando o container iniciar.
• CMD:
o Instrução que é executada quando o container se inicia. Note que o CMD (e o ENTRYPOINT) são instruções que são executadas no pós, e não na criação da imagem. No caso do CMD você pode ter mais de um no Dockerfile, contudo ele só executa o último (o ENTRYPOINT faz a mesma coisa, mas não sobre escreve);

Outras instruções no Dockerfile

Além dessas instruções, existem outras que podem ser interessantes quando você está criando uma imagem, cito-as:
• ADD
o Faz a cópia de arquivos locais ou externos para dentro do container. Dessa forma você pode copiar arquivos de URLs, e até mesmo descompactar automaticamente arquivos que estão em .tar.
• COPY
o Faz cópia de arquivos locais para dentro do container. Note que aqui você não tem opção de fazer download e/ou descompactação.]
• ENV
o Seta variáveis de ambiente dentro que estarão disponíveis dentro do container.
• ARG
o Também seta variáveis de ambiente, contudo apenas durante o build. Útil por exemplo, se você precisa definir um HTTP_PROXY apenas durante o build.

That’s all folks! Be Happy!!!

OUTRAS PUBLICAÇÕES

O que é Open Banking?

2020 foi um ano muito importante para o setor bancário brasileiro. Dois sistemas que prometem mudar a forma de como nos relacionamos com os serviços bancários foram oferecidos. O primeiro é o PIX, a tecnologia de pagamentos instantâneos, que entrou em vigor no mês de novembro. E o Open Banking em que suas regras de funcionamento foram aprovadas pelo Conselho Monetário Nacional (CMN) e o Banco Central (Bacen) e será implementado gradualmente ao longo de 2021. Esse sistema tem como objetivo trazer mais opções de produtos, com o menor custo, além de mais transparência para dar mais autonomia para a vida financeira para os usuários finais. O que é Open Banking? Imagine o momento em que você irá se cadastrar em algum site qualquer. Nele tem a opção de utilizar seus dados do Google ou de alguma rede social para realizar a ação, podendo ser seu nome, e-mail ou qualquer outra informação necessária. Assim podendo compartilhá-las para atingir o objetivo de acessar aquele site. O Open Banking funciona de maneira similar a esse processo. Esse conceito se baseia em um conjunto de regras e tecnologias que permitem o compartilhamento de serviços e dados de clientes entre instituições financeiras, tudo isso a partir do consentimento das pessoas. Por exemplo, caso você tenha o interesse de contratar algum serviço bancário, como um empréstimo, é possível utilizar seu histórico em outros serviços utilizados em outra instituição para que você possa conseguir maiores limites e melhores taxas. Mesmo que o requerente não seja necessariamente correntista do banco. Assim deixando esse processo menos burocrático e mais simples para o usuário comum. Confira a atuação da Darede no Banco Máxima! Mas como cloud computing influencia no Open Banking? O Open Banking irá trabalhar com uma enorme quantidade de dados. Para se ter uma ideia, as informações que serão compartilhadas são as mesmas que usam para abrir a conta em um banco. A tecnologia em cloud auxilia as instituições financeiras a operar e armazenar um grande volume de dados, bem como garantir a segurança e transparência nesse processo de compartilhamento de dados. Esse procedimento será feito de forma padronizada, por isso ele será feito através de APIs. Assim as instituições financeiras vão poder realizar essa troca de informações de forma rápida e segura. A AWS possui serviços capazes de proporcionar um ambiente em cloud escalável e estável em que seja possível garantir que esse compartilhamento de dados sejam realizados de forma totalmente segura. Ferramentas que estão em conformidade com as principais regulações mundiais, como GDPR, FIPS 140–2 e FedRAMP, por exemplo. Cloud Computing também pode ajudar as instituições financeiras na adaptação da Lei Geral de Proteção de Dados, recém regulamentada pelo Governo Federal. O conceito de Open Banking já é uma realidade em diversos países mundo afora, uma vez que o Reino Unido já trabalha com esse sistema desde 2018, a Índia vem dando seus primeiros passos. Enquanto países como os Estados Unidos, Canadá e Rússia ainda analisam formas de implementá-lo em seus sistemas bancários, já que o Open Banking não possui um formato específico. O Open Banking busca trazer autonomia para as instituições financeiras e liberdade para os clientes escolherem a melhor forma de se relacionar com elas. Confira mais artigos de tecnologia em nosso blog!

Darede auxilia Banco ABC Brasil a migrar sua estrutura para a nuvem AWS

A empresa participou do projeto que busca dar continuidade à transformação digital do Banco ABC Brasil. Confere aí! Barueri, 12 de setembro de 2023 – A Darede, empresa parceira nível Premier da Amazon Web Services, auxiliou o Banco ABC Brasil, banco múltiplo, especializado na concessão de crédito e serviços para grandes e médias empresas, na migração de seus sistemas e aplicativos para a nuvem.  O projeto, que faz parte de uma estratégia que visa dar seguimento à transformação digital pela qual o banco vem passando nos últimos anos, também tem o objetivo de  aumentar a eficiência, agilidade e segurança de seus processos internos, podendo assim melhorar a experiência de seus clientes. A jornada de migração para a nuvem foi promovida pela Darede, em parceria com a AWS, e permitirá que o Banco ABC Brasil reduza custos com manutenção e atualização de servidores e sistemas, permitindo que a empresa concentre seus esforços em projetos mais estratégicos. O banco poderá aproveitar os recursos da AWS, maior plataforma de serviços em cloud do mundo, para escalar seus aplicativos e serviços com mais facilidade, tornando-os mais flexíveis e ágeis.  “Estamos entusiasmados com o projeto, utilizaremos de toda expertise da Darede e da AWS para alavancar a transformação digital em nosso banco, especialmente nesse momento em que estamos entrando com novos produtos do mercado. Por isso, notamos a necessidade de um ambiente que possibilitasse avançarmos ainda mais.”, afirmou Renato Raiça, Head of IT Operations do Banco ABC Brasil. Já Marcelo Carazato, CMO e sócio da Darede, destacou a experiência da Darede com empresas do setor financeiro. “É um grande projeto. Foi bem interessante a aproximação com o Banco ABC Brasil, por meio da AWS, uma vez que a Darede já tem uma certa experiência no mercado financeiro e a ideia é facilitar a jornada do banco, bem como extrair o que a computação em nuvem tem de melhor.” 

Cost Optimization Hub

Está ciente das oportunidades de redução de custos na Nuvem? Descubra como o Cost Optimization Hub da AWS pode te auxiliar!

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