Como Dockerizar um Script Python com Docker Compose

· 2 minutos de leitura
Como Dockerizar um Script Python com Docker Compose
Como Dockerizar um Script Python com Docker ComposeComo Dockerizar um Script Python com Docker Compose

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 arquivo requirements.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 em requirements.txt.
  • CMD ["python", "relatorio-alerta.py"]: Define o comando padrão para executar o script Python relatorio-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 que relatorio-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!