9router / Dockerfile
Rtendry81's picture
Update Dockerfile
f9b6cc8 verified
Raw
History Blame Contribute Delete
1.06 kB
# Image de base Node.js
FROM node:20-slim
# socat = petit relais TCP qui fera le pont 0.0.0.0 -> 127.0.0.1
# (installation en root, pendant le build)
RUN apt-get update \
&& apt-get install -y --no-install-recommends socat \
&& rm -rf /var/lib/apt/lists/*
# Installation globale de 9router
RUN npm install -g 9router@0.4.63
# --- Spécificité HuggingFace Spaces ---
# UID 1000 = utilisateur "node" déjà présent dans l'image.
USER node
ENV HOME=/home/node \
PATH=/home/node/.local/bin:$PATH
WORKDIR $HOME/app
# Port exposé = port attendu par HuggingFace
EXPOSE 7860
# Architecture :
# - 9router tourne EN ARRIERE-PLAN sur 127.0.0.1:8080 (port interne)
# - socat reste AU PREMIER PLAN (PID 1) : il écoute sur 0.0.0.0:7860
# et relaie tout vers 127.0.0.1:8080
# => le conteneur reste vivant (socat) ET le health check externe de
# HuggingFace atteint bien le port 7860.
CMD 9router --host 127.0.0.1 --port 8080 --no-browser --skip-update --log & \
sleep 5 && \
exec socat TCP-LISTEN:7860,fork,reuseaddr TCP:127.0.0.1:8080