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/app
como o diretório de trabalho dentro do contêiner.COPY --chmod=775 requirements.txt /app
: Copia o arquivorequirements.txt
para 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/app
no contêiner, permitindo que você veja mudanças imediatas no contêiner./etc/localtime:/etc/localtime
e/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.py
seja 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!