
Automatizar tarefas usando scripts Python é uma prática comum entre desenvolvedores. No entanto, garantir que esses scripts sejam executados perfeitamente em vários sistemas pode apresentar desafios significativos, principalmente devido ao gerenciamento de dependências.É aqui que o Docker se mostra inestimável, permitindo encapsular seu script Python e suas dependências associadas em um contêiner portátil. Isso garante que o script tenha um desempenho uniforme em diferentes ambientes. Neste guia abrangente, descreveremos o processo de criação de um script Python prático e sua execução em um contêiner Docker.
As vantagens de usar o Docker para Python
Gerenciar dependências do Python pode se tornar rapidamente trabalhoso, especialmente quando diferentes projetos exigem pacotes conflitantes. O Docker resolve esses problemas integrando seu script ao ambiente dele. Isso elimina a desculpa comum de “funciona na minha máquina”, garantindo um desempenho consistente em todas as plataformas.
Além disso, o Docker ajuda a manter um ambiente de desenvolvimento limpo, impedindo a instalação de diversos pacotes Python globalmente. Todas as dependências estão contidas no ambiente Docker, agilizando o gerenciamento de projetos.
Ao passar seu script para outros usuários ou implantá-lo, o Docker simplifica o processo. Não há necessidade de instruções de instalação extensas — apenas um único comando é suficiente para executar seu script.
Criando o script Python
Primeiro, crie um diretório de projeto para armazenar seu script Python e o Dockerfile. Use os seguintes comandos para configurar o diretório:
mkdir docker_file_organizercd docker_file_organizer
Em seguida, crie um script chamado organize_files.py que verificará um diretório especificado e categorizará os arquivos com base em suas extensões:
nano organize_files.py
Insira o seguinte código no arquivo organize_files.py. Este script utiliza os módulos os
e integrados shutil
para manipular arquivos dinamicamente e gerar diretórios:
import osimport shutilSOURCE_DIR = "/files"def organize_by_extension(directory): try: for fname in os.listdir(directory): path = os.path.join(directory, fname) if os.path.isfile(path): ext = fname.split('.')[-1].lower() if '.' in fname else 'no_extension' dest_dir = os.path.join(directory, ext) os.makedirs(dest_dir, exist_ok=True) shutil.move(path, os.path.join(dest_dir, fname)) print(f"Moved: {fname} → {ext}/") except Exception as e: print(f"Error organizing files: {e}")if __name__ == "__main__": organize_by_extension(SOURCE_DIR)
Este script organiza arquivos em um diretório especificado por suas extensões. Ele utiliza o os
módulo para listar arquivos, verificar se cada item é um arquivo, extrair sua extensão e criar pastas com seus nomes. Por fim, o shutil
módulo facilita a movimentação de cada arquivo para sua respectiva pasta, acompanhada de uma mensagem indicando o novo local.
Definindo o Dockerfile
Agora, vamos criar um Dockerfile que descreve o ambiente para seu script:
FROM python:latestLABEL maintainer="[email protected]"WORKDIR /usr/src/appCOPY organize_files.py. CMD ["python", "./organize_files.py"]
Este Dockerfile configura um contêiner com Python, copia seu script nele e garante que o script seja executado automaticamente na inicialização do contêiner:

Construindo a imagem do Docker
Antes de compilar a imagem do Docker, certifique-se de que o Docker esteja instalado no seu sistema. Você pode então empacotar tudo em uma imagem com o seguinte comando:
sudo docker build -t file-organizer.
Este comando lê o Dockerfile e reúne a configuração necessária do Python junto com seu script em uma única imagem de contêiner:

Criando um diretório de amostra
Para observar nosso script em ação, crie uma pasta de teste chamada sample_files e preencha-a com vários tipos de arquivo para simular um ambiente desorganizado:
mkdir ~/sample_filestouch ~/sample_files/test.txttouch ~/sample_files/image.jpgtouch ~/sample_files/data.csv
Executando o script dentro do Docker
Por fim, inicie seu contêiner Docker e monte o diretório sample_files nele. A -v
flag conecta seu ~/sample_files
diretório local ao /files
diretório do contêiner, permitindo que o script Python acesse e organize os arquivos:
docker run --rm -v ~/sample_files:/files file-organizer
Ao usar o --rm
sinalizador, o contêiner será removido automaticamente após a conclusão, reduzindo o consumo de espaço em disco:

Para verificar se os arquivos foram classificados corretamente, utilize o tree
comando:
tree sample_files

Conclusão
Com seu script Python sendo executado com sucesso em um contêiner Docker, você pode aproveitar um ambiente de desenvolvimento simplificado, portátil e consistente. Essa abordagem em contêineres não só facilita a reutilização para outras tarefas de automação, como também simplifica o compartilhamento de seus scripts sem preocupações com dependências, mantendo assim seu sistema organizado. Como um projeto futuro, considere explorar como criar imagens Docker com vários scripts, automatizar tarefas com tarefas cron ou integrar seus scripts com ferramentas essenciais como Git, Jenkins ou serviços em nuvem para aprimorar ainda mais seus fluxos de trabalho de automação.
Deixe um comentário ▼