caarleexx commited on
Commit
1986ded
·
verified ·
1 Parent(s): 52099fb

Update Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +38 -28
Dockerfile CHANGED
@@ -1,32 +1,19 @@
1
  FROM node:20-slim
2
  WORKDIR /app
3
 
4
-
5
-
6
-
7
-
8
- # 1. Instalação básica (Git + libcurl)
9
  RUN apt-get update && apt-get install -y git libcurl4
10
 
11
  # 2. Clona o projeto
12
  RUN git clone https://github.com/huggingface/chat-ui .
13
 
14
- # 3. Copia o .env
15
  COPY .env .
16
 
17
- ARG GROQ_API_KEY
18
- ENV GROQ_API_KEY=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
19
-
20
-
21
- ARG SPACE_HOST
22
- ENV SPACE_HOST=${SPACE_HOST}
23
-
24
-
25
-
26
- # 4. Instalação
27
  RUN npm ci
28
 
29
- # 5. Adaptador (Corrige o erro do banco de dados)
30
  RUN printf "import { fileURLToPath } from 'url';\n\
31
  import { dirname } from 'path';\n\
32
  const __filename = fileURLToPath(import.meta.url);\n\
@@ -35,20 +22,43 @@ global.__dirname = __dirname;\n\
35
  global.__filename = __filename;\n\
36
  import('./build/index.js');" > adapter.js
37
 
38
- # 6. Build
39
  ENV OPENAI_BASE_URL="https://api.groq.com/openai/v1"
40
  ENV NODE_OPTIONS="--max-old-space-size=4096"
41
  RUN OPENAI_API_KEY=$GROQ_API_KEY npm run build
42
 
43
- # 7. Configurações de Rede
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
44
  ENV NODE_OPTIONS=""
45
  ENV PORT=7860
46
- # Permite cookies (necessário para o login funcionar dentro do Space)
47
- ENV ALLOW_INSECURE_COOKIES=true
48
-
49
- # 8. COMANDO DE INICIALIZAÇÃO PERFEITO
50
- # Aqui usamos 'export' para definir as variáveis na hora que o servidor sobe.
51
- # - ORIGIN: Usa a variável automática do HF ($SPACE_HOST) para evitar erros de bloqueio.
52
- # - ADDRESS: Garante que escute em 0.0.0.0.
53
- # - node adapter.js: Inicia o servidor diretamente.
54
- CMD ["sh", "-c", "export ORIGIN=https://$SPACE_HOST && export ADDRESS=0.0.0.0 && export OPENAI_API_KEY=$GROQ_API_KEY && node adapter.js"]
 
1
  FROM node:20-slim
2
  WORKDIR /app
3
 
4
+ # 1. Instalação (Git + libcurl)
 
 
 
 
5
  RUN apt-get update && apt-get install -y git libcurl4
6
 
7
  # 2. Clona o projeto
8
  RUN git clone https://github.com/huggingface/chat-ui .
9
 
10
+ # 3. Copia o .env original (para o build)
11
  COPY .env .
12
 
13
+ # 4. Instala dependências
 
 
 
 
 
 
 
 
 
14
  RUN npm ci
15
 
16
+ # 5. Adaptador do Banco (Correção Mongo/ESM)
17
  RUN printf "import { fileURLToPath } from 'url';\n\
18
  import { dirname } from 'path';\n\
19
  const __filename = fileURLToPath(import.meta.url);\n\
 
22
  global.__filename = __filename;\n\
23
  import('./build/index.js');" > adapter.js
24
 
25
+ # 6. Build (Compilação)
26
  ENV OPENAI_BASE_URL="https://api.groq.com/openai/v1"
27
  ENV NODE_OPTIONS="--max-old-space-size=4096"
28
  RUN OPENAI_API_KEY=$GROQ_API_KEY npm run build
29
 
30
+ # --- CORREÇÃO DAS CONFIGURAÇÕES GLOBAIS ---
31
+ # Criamos um script que injeta as configurações no .env na hora H (Runtime)
32
+ RUN printf "#!/bin/bash\n\
33
+ echo '--- [CONFIG] Aplicando configurações globais no .env ---'\n\
34
+ \n\
35
+ # 1. Injeta a Chave da API (sobrescreve se existir)\n\
36
+ echo \"OPENAI_API_KEY=\$GROQ_API_KEY\" >> .env\n\
37
+ \n\
38
+ # 2. Configura o ORIGIN dinamicamente usando a variável do HF (\$SPACE_HOST)\n\
39
+ # Isso garante que o endereço https://seu-space.hf.space seja autorizado\n\
40
+ if [ ! -z \"\$SPACE_HOST\" ]; then\n\
41
+ echo \"ORIGIN=https://\$SPACE_HOST\" >> .env\n\
42
+ fi\n\
43
+ \n\
44
+ # 3. Configurações de Rede Obrigatórias\n\
45
+ echo \"ADDRESS=0.0.0.0\" >> .env\n\
46
+ echo \"PORT=7860\" >> .env\n\
47
+ echo \"ALLOW_INSECURE_COOKIES=true\" >> .env\n\
48
+ \n\
49
+ # 4. Log para conferência (sem mostrar a senha)\n\
50
+ echo '--- [CONFIG] ORIGIN definido para: https://'\$SPACE_HOST\n\
51
+ \n\
52
+ echo '--- [START] Iniciando Adapter ---'\n\
53
+ node adapter.js\n\
54
+ " > start.sh
55
+
56
+ RUN chmod +x start.sh
57
+
58
+ # 7. Configurações Finais de Ambiente
59
  ENV NODE_OPTIONS=""
60
  ENV PORT=7860
61
+ EXPOSE 7860
62
+
63
+ # 8. Inicia usando nosso script de configuração
64
+ CMD ["./start.sh"]