A conteinerização é um recurso épico que permite aos desenvolvedores empacotar um aplicativo junto com as dependências necessárias em uma única unidade. Podemos então mover o contêiner e implantar o aplicativo em ambientes sem precisar nos preocupar com compatibilidade.
O que é frasco?
Flask é um micro framework web minimalista e leve para Python. Ele fornece os recursos e bibliotecas essenciais necessários para construir o aplicativo da web leve usando a linguagem Python.
Flask segue o padrão Web Server Gateway Interface ou WSGI que nos permite incorporar um design minimalista com um padrão flexível que pode lidar com a solicitação HTTP e outros recursos. Por exemplo, Flask oferece suporte a recursos da web, como roteamento, bancos de dados e muito mais.
Pré-requisitos:
Para acompanhar o código e os comandos fornecidos neste tutorial, certifique-se de ter as seguintes ferramentas:
- Intérprete Python instalado em sua máquina (versão 3.11 e superior é recomendada)
- Mecanismo Docker instalado na máquina host (versão 23 e superior é recomendada)
- Um editor de texto ou IDE de sua preferência
Com os requisitos fornecidos atendidos, podemos prosseguir com este tutorial.
Crie o aplicativo Flask
Como você pode imaginar, a primeira etapa é criar o aplicativo Python que desejamos colocar em contêiner. Para o nosso caso, demonstramos isso com um aplicativo minimalista que imprime “olá mundo”.
Crie um novo diretório para armazenar o código-fonte do seu projeto e crie um arquivo Python chamado “app.py”.
Edite o “app.py” com seu editor de texto ou IDE favorito e adicione o código para sua aplicação da seguinte forma:
de frasco importar Frascoaplicativo = Frasco ( __nome__ )
@ aplicativo. rota ( '/' )
definição Olá Mundo ( ) :
retornar '
Olá, mundo!
'
Crie um Dockerfile
A seguir, precisamos definir as instruções que nos permitem empacotar a aplicação como uma imagem Docker. Usamos o Dockerfile que contém todas as instruções e ferramentas para configurar a imagem.
No mesmo diretório de “hello.py”, crie um novo arquivo chamado “Dockerfile” sem extensão. Execute o seguinte comando:
$ toque DockerfileEdite o arquivo e adicione o código da seguinte forma:
Use a imagem oficial do Python como imagem base.
DE python: 3.12 -rc-slimWORKDIR /aplicativo
CÓPIA DE . /aplicativo
#Instalar o frasco
EXECUTAR pip install --no-cache- você -r requisitos. TXT
# Exponha a porta 5000 para o aplicativo Flask
EXPOR 5.000
#executa a aplicação Flask
DMC [ 'Pitão' , 'aplicativo.py' ]
O Dockerfile anterior executa as seguintes operações:
- Usa a imagem slim oficial do Python 3.12 como imagem base
- Define o diretório de trabalho dentro do contêiner como “/app”
- Copia o conteúdo do diretório do projeto para o contêiner
- Instala o Flask e quaisquer outras dependências executando “pip install” usando o arquivo “requirements.txt”
- Expõe a porta 5000 para o aplicativo Flask
- Define o comando para executar o aplicativo Flask
Certifique-se de que o arquivo “requirements.txt” exista no diretório do projeto e adicione o conteúdo do arquivo conforme mostrado a seguir:
Frasco == 2.3.3Neste caso, especificamos que desejamos instalar o Flask versão 2.3.3.
Construir a imagem Docker
Agora que temos o aplicativo Flask e o Dockerfile prontos, podemos prosseguir e construir a imagem com o seguinte comando:
docker build -t flask-docker-app.Certifique-se de estar no diretório do projeto antes de executar o comando anterior. Você pode substituir flask-docker-app pelo nome que deseja atribuir à sua imagem.
Execute o contêiner Docker
Com a imagem Docker construída, podemos executar o contêiner com base na imagem usando o comando “docker run” da seguinte forma:
janela de encaixe execute -p 5.000 : 5.000 flask-docker-appIsso deve criar um contêiner e mapear a porta 5000 do contêiner para a porta 5000 no sistema host.
Uma vez executado, abra o navegador e navegue até http://localhost:5000 .
Você deverá ver a mensagem “Olá, mundo!” mensagem do aplicativo Flask.
Conclusão
Neste tutorial, você aprendeu como conteinerizar um aplicativo Python Flask simples usando Docker.