Spaces:
Sleeping
Sleeping
Update Dockerfile
Browse files- Dockerfile +31 -13
Dockerfile
CHANGED
|
@@ -1,33 +1,51 @@
|
|
| 1 |
FROM node:20-slim
|
| 2 |
WORKDIR /app
|
| 3 |
|
| 4 |
-
# 1. Instalação
|
| 5 |
-
RUN apt-get update && apt-get install -y git libcurl4
|
| 6 |
|
| 7 |
-
# 2. Clona o
|
| 8 |
RUN git clone https://github.com/huggingface/chat-ui .
|
| 9 |
|
| 10 |
# 3. Instala dependências
|
| 11 |
RUN npm ci
|
| 12 |
|
| 13 |
-
# 4. Copia
|
| 14 |
-
# O .env falso vai permitir o build passar
|
| 15 |
-
COPY .env .
|
| 16 |
COPY adapter.js .
|
| 17 |
COPY start.sh .
|
| 18 |
-
|
| 19 |
-
# 5. Dá permissão para o script de inicialização rodar
|
| 20 |
RUN chmod +x start.sh
|
| 21 |
|
| 22 |
-
#
|
| 23 |
-
#
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 24 |
ENV NODE_OPTIONS="--max-old-space-size=4096"
|
| 25 |
-
RUN
|
|
|
|
|
|
|
|
|
|
|
|
|
| 26 |
|
| 27 |
-
#
|
| 28 |
ENV NODE_OPTIONS=""
|
| 29 |
ENV PORT=7860
|
| 30 |
EXPOSE 7860
|
| 31 |
|
| 32 |
-
#
|
| 33 |
CMD ["./start.sh"]
|
|
|
|
| 1 |
FROM node:20-slim
|
| 2 |
WORKDIR /app
|
| 3 |
|
| 4 |
+
# 1. Instalação
|
| 5 |
+
RUN apt-get update && apt-get install -y git libcurl4 procps
|
| 6 |
|
| 7 |
+
# 2. Clona o repositório
|
| 8 |
RUN git clone https://github.com/huggingface/chat-ui .
|
| 9 |
|
| 10 |
# 3. Instala dependências
|
| 11 |
RUN npm ci
|
| 12 |
|
| 13 |
+
# 4. Copia os scripts (da aba Files)
|
|
|
|
|
|
|
| 14 |
COPY adapter.js .
|
| 15 |
COPY start.sh .
|
|
|
|
|
|
|
| 16 |
RUN chmod +x start.sh
|
| 17 |
|
| 18 |
+
# 5. Prepara o .env para o Build
|
| 19 |
+
# (Define que vamos usar o localhost na porta 9999)
|
| 20 |
+
RUN printf 'MODELS=[{"name":"BuildDummy","id":"dummy","parameters":{"stop":[]}}]\n\
|
| 21 |
+
OPENAI_BASE_URL=http://localhost:9999/v1\n\
|
| 22 |
+
OPENAI_API_KEY=dummy\n\
|
| 23 |
+
PUBLIC_APP_NAME=Chat\n\
|
| 24 |
+
' > .env
|
| 25 |
+
|
| 26 |
+
# 6. O PULO DO GATO: SERVIDOR FAKE
|
| 27 |
+
# Criamos um script node que finge ser a API da OpenAI/Groq na porta 9999.
|
| 28 |
+
# Ele roda em segundo plano (&), depois rodamos o build, depois matamos ele.
|
| 29 |
+
RUN printf "import { createServer } from 'http';\n\
|
| 30 |
+
const server = createServer((req, res) => {\n\
|
| 31 |
+
res.writeHead(200, { 'Content-Type': 'application/json' });\n\
|
| 32 |
+
res.end(JSON.stringify({ object: 'list', data: [] }));\n\
|
| 33 |
+
});\n\
|
| 34 |
+
server.listen(9999, () => console.log('Mock server running on 9999'));\n\
|
| 35 |
+
" > mock-server.js
|
| 36 |
+
|
| 37 |
+
# 7. Executa o Build com o servidor fake ligado
|
| 38 |
ENV NODE_OPTIONS="--max-old-space-size=4096"
|
| 39 |
+
RUN node mock-server.js & \
|
| 40 |
+
PID=$! && \
|
| 41 |
+
sleep 3 && \
|
| 42 |
+
npm run build && \
|
| 43 |
+
kill $PID
|
| 44 |
|
| 45 |
+
# 8. Configurações Finais
|
| 46 |
ENV NODE_OPTIONS=""
|
| 47 |
ENV PORT=7860
|
| 48 |
EXPOSE 7860
|
| 49 |
|
| 50 |
+
# 9. Inicia (usando o start.sh que configura a Groq real)
|
| 51 |
CMD ["./start.sh"]
|