Docker é uma ferramenta poderosa para criar, distribuir e executar aplicativos em contêineres. Neste post, vamos mostrar como criar um Dockerfile e um arquivo Docker Compose para executar um script Python. Isso ajudará a garantir que seu aplicativo Python seja executado em um ambiente consistente, independente da máquina onde está sendo executado.
Pré-requisitos:
- Conhecimento básico de Python.
- Docker instalado em sua máquina.
Passo 1: Criar o Dockerfile
O Dockerfile é um arquivo de texto que contém todas as instruções para construir a imagem do Docker. Vamos verificar o exemplo abaixo:
# Use a imagem do Python na versão compatível com o código
FROM python:3.12.3-alpine3.20
# Define o diretório de trabalho dentro do contêiner
WORKDIR /app
# Copia o arquivo requirements.txt para o diretório de trabalho no contêiner
COPY --chmod=775 requirements.txt /app
# Instala as dependências listadas em requirements.txt
RUN pip install -r requirements.txt
# Define o comando padrão a ser executado quando o contêiner é iniciado
CMD ["python", "relatorio-alerta.py"]
FROM python:3.12.3-alpine3.20: Usa uma imagem oficial do Python baseada no Alpine Linux, que é uma distribuição leve.WORKDIR /app: Define/appcomo o diretório de trabalho dentro do contêiner.COPY --chmod=775 requirements.txt /app: Copia o arquivorequirements.txtpara o diretório de trabalho e altera suas permissões.RUN pip install -r requirements.txt: Instala as dependências do código do Python listadas emrequirements.txt.CMD ["python", "relatorio-alerta.py"]: Define o comando padrão para executar o script Pythonrelatorio-alerta.py.
Passo 2: Criar o Docker Compose
O Docker Compose é uma ferramenta que permite definir e executar aplicações multi-contêiner. Vamos usar um arquivo YAML para configurar o serviço.
services:
app:
build:
context: .
dockerfile: Dockerfile
volumes:
- .:/app
- /etc/localtime:/etc/localtime
- /etc/timezone:/etc/timezone
command: ["python", "relatorio-alerta.py"]
Explicação das instruções:
version: '3.8': Define a versão do Docker Compose a ser usada.services: Define os serviços que compõem sua aplicação.app: Nome do serviço.build: Especifica as opções de construção da imagem.context: .: Define o diretório de contexto para a construção da imagem.dockerfile: Dockerfile: Especifica o Dockerfile a ser usado.
volumes: Monta volumes para compartilhar arquivos entre o contêiner e a máquina host..:/app: Monta o diretório atual (.) para/appno contêiner, permitindo que você veja mudanças imediatas no contêiner./etc/localtime:/etc/localtimee/etc/timezone:/etc/timezone: Mantém o fuso horário do host no contêiner.
command: Sobrescreve o comando padrão definido no Dockerfile para garantir querelatorio-alerta.pyseja executado.
Conclusão:
Neste post, vimos como criar um Dockerfile e um arquivo Docker Compose para dockerizar um script Python. Isso não apenas ajuda a padronizar o ambiente de desenvolvimento, mas também facilita a implantação e a escalabilidade do aplicativo.
Experimente criar seu próprio Dockerfile e Docker Compose seguindo esses passos e veja como é fácil executar seu script Python em um contêiner Docker!