praitv / Dockerfile
itzraissc
oi
78c3e1e
# ── RaíTV Proxy — Hugging Face Spaces Docker Image ──────────────────────────
# HF Spaces exige: porta 7860 + usuário não-root
FROM node:20-slim
# Metadados
LABEL maintainer="RaíTV Proxy"
LABEL version="2.0.0"
# Diretório de trabalho
WORKDIR /app
# Copia apenas os arquivos de dependências primeiro (otimiza cache de build)
COPY package.json package-lock.json* ./
# Instala dependências de produção
RUN npm ci --omit=dev
# Copia o restante do código
COPY . .
# Hugging Face Spaces EXIGE a porta 7860
ENV PORT=7860
ENV NODE_ENV=production
# Expõe a porta
EXPOSE 7860
# Usuário não-root (boa prática + requerido pelo HF)
RUN addgroup --system appgroup && adduser --system --ingroup appgroup appuser
USER appuser
# Healthcheck
HEALTHCHECK --interval=30s --timeout=10s --start-period=5s --retries=3 \
CMD node -e "require('http').get('http://localhost:7860/health', (r) => process.exit(r.statusCode === 200 ? 0 : 1)).on('error', () => process.exit(1))"
# Inicia o servidor
CMD ["node", "server.js"]