Dockerfile (view raw)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
# news-mcp — imagem do servidor MCP de notícias.
FROM python:3.12-slim
# Sem .pyc (rootfs é read-only no runtime) e logs sem buffer.
ENV PYTHONUNBUFFERED=1 \
PYTHONDONTWRITEBYTECODE=1
WORKDIR /app
# Usuário não-root (segurança: o container não roda como root).
RUN useradd --uid 10001 --create-home appuser
# Instala dependências primeiro (melhor cache de camadas).
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
# Código + um feeds.json padrão (o deploy sobrescreve montando o seu por cima).
COPY *.py ./
COPY feeds.json ./feeds.json
# Pasta do banco pertencente ao appuser (o volume nomeado herda essa dona).
RUN mkdir -p /data && chown appuser:appuser /data
USER appuser
EXPOSE 17631
CMD ["python", "server.py"]
|