Criando um container em Docker com Python

Criar um arquivo Dockerfile para rodar scripts Python é um processo simples e muito útil em diversas aplicações.

Construindo modelos arquitetônicos com Blender 3D

Quem nunca precisou criar uma simples aplicação para rodar uma determinada tarefa ou processo? Pois é, as vezes esse tipo de trabalho requer que seja executado da forma mais simples sem a instalação e configuração de pacotes, ajustes em servidores, entre muitos outros processos.

Veremos nesse artigo como criar um container em Docker com uma imagem do Python, em seguida, vamos executar um simples script .py para certificar de que tudo esteja rodando corretamente.

Antes de tudo, é necessário criar uma pasta na qual seu projeto vai estar. Também é importante que você já tenha o Docker instalado e configurado no seu ambiente de trabalho.

Criando o script em Python

Antes de começarmos a configurar nosso container em Docker, vamos criar uma pasta na raiz do projeto chamada de app/. Dentro dessa pasta, crie um arquivo chamado index.py e insira o código abaixo. 

print("SatellaSoft tutorial")

Basicamente criamos um arquivo dentro da nossa pasta de trabalho. Esse arquivo contém um código que quando executado irá exibir uma mensagem no console, comprovando assim que nosso container e imagem está funcionando corretamente.

Criando e configurando o arquivo Dockerfile

Primeiramente vamos criar um arquivo chamado Dockerfile na raiz do projeto. Esse arquivo não tem extensão e por convenção, a letra D inicial é na maiúscula. 

Agora insira as linhas de instrução abaixo.

FROM python:3

WORKDIR /app

COPY . .

CMD ["python", "app/index.py"]

Vamos ver a explicação de cada um desses comandos:

  • FROM python:3 - Aqui definimos qual imagem vamos utilizar, nesse caso o Python em sua versão 3;
  • WORKDIR - Qual é a pasta de trabalho, quando a gente for instalar pacotes, será criado dentro dela;
  • COPY . . - Estamos copiando tudo da pasta raiz do projeto para a pasta raiz do container. Nesse caso, estamos levando tudo;
  • CMD [...] - O comando CMD é utilizado para executar comandos. No nosso exemplo, rodamos o comando python e na sequencia, especificamos qual arquivo queremos executar.

Caso você tenha algum arquivo na qual não deseje que seja levado para o container, poderá criar na raiz do projeto um arquivo chamado .dockerignore e inserir nele o caminho das pastas e arquivos a serem ignorados.

Até aqui nos temos a estrutura de pasta conforme mostra a imagem abaixo.

Criando e executando container em Docker

Até aqui a gente criou toda a nossa estrutura do Dockerfile, nossa pasta e arquivo em Python, sendo assim, estamos pronto para construir e rodar nosso container.

Primeiramente, vamos fazer a build, que nada mais é do que fazer com que o Docker leia nosso arquivo Dockerfile e siga as instruções nele, gerando assim uma nova imagem. Para isso, abra o terminal na raiz do projeto e rode o comando abaixo.

docker build -t micro-python .

Vamos entender o comando:

  • docker build - Comando utilizado para criar a imagem;
  • -t micro-python - Nome da imagem que estamos criando;
  • . (ponto) - O ponto no final indica que vamos criar a partir do diretório atual.

Se a gente for analisar o Docker Desktop, por exemplo, podemos ver que a nossa imagem já foi construída e está disponível localmente.

Agora vamos construir nosso container com base na nossa imagem, para isso, vamos executar o comando abaixo.

docker run -it micro-python

O comando acima executa nossa imagem no modo interativo (-it), fazendo com que o terminal fique disponível e não travado. Veja que especificamos também o nome da imagem na qual queremos construir.
Também podemos passar o parâmetro --rm, que faz com que o container seja deletado após a execução.

Se você seguiu tudo corretamente até aqui, verá uma mensagem no terminal como mostra a imagem abaixo.

Conclusão

Montamos aqui um exemplo bem simples mas funcional, que pode ser utilizado em diversos cenários e aplicações. Continue seus estudos para aprender mais sobre o Python e Docker.

Você pode acessar o repositório desse projeto em https://github.com/satellasoft/Criando-um-container-em-Docker-com-Python.

Também temos uma videoaula com o exemplo criado nesse artigo.

Qualquer dúvida ou sugestão, deixe nos comentários.