| # Estágio 1: Build (Node.js Alpine) | |
| FROM node:18-alpine AS build | |
| WORKDIR /app | |
| COPY package*.json ./ | |
| RUN npm install | |
| COPY . . | |
| RUN npm run build | |
| # Estágio 2: Execução (Nginx Alpine) | |
| FROM nginx:stable-alpine | |
| # Hugging Face exige a porta 7860 por padrão | |
| # Ajustamos a configuração do Nginx para escutar nela | |
| RUN sed -i 's/listen[[:space:]]*80;/listen 7860;/g' /etc/nginx/conf.d/default.conf | |
| # Permissões necessárias para rodar como usuário não-root no HF | |
| RUN touch /var/run/nginx.pid && \ | |
| chown -R 1000:1000 /var/run/nginx.pid /var/cache/nginx /var/log/nginx /usr/share/nginx/html | |
| # Copia os arquivos do build | |
| COPY --from=build /app/build /usr/share/nginx/html | |
| # Define o usuário padrão do Hugging Face (UID 1000) | |
| USER 1000 | |
| # Expõe a porta correta | |
| EXPOSE 7860 | |
| CMD ["nginx", "-g", "daemon off;"] | |