# Exemplo 1: Dockerfile basico para uma aplicacao Python
# Mostra a estrutura minima de um Dockerfile funcional.
# Obs: comentarios em Dockerfile precisam ficar em linhas proprias (nao funcionam apos instrucoes).

# Imagem base oficial do Python na variante "slim" (menor que a padrao).
FROM python:3.12-slim

# Define o diretorio de trabalho dentro do container (criado se nao existir).
WORKDIR /app

# Copia apenas o requirements.txt primeiro para aproveitar o cache de camadas:
# se o codigo mudar mas as dependencias nao, esta camada e reaproveitada.
COPY requirements.txt .

# Instala as dependencias sem deixar cache do pip (reduz o tamanho da imagem).
RUN pip install --no-cache-dir -r requirements.txt

# Copia todo o codigo da aplicacao para /app no container.
COPY . .

# Documenta que o container escuta na porta 5000 (apenas informativo, nao publica a porta).
EXPOSE 5000

# Comando padrao executado quando o container inicia.
CMD ["python", "app.py"]
