File size: 9,855 Bytes
9deabdc 8b8f916 c143758 affe6ff c143758 4ebde2b c143758 affe6ff c143758 4ebde2b 8b8f916 c143758 4ebde2b 9426207 affe6ff 4ebde2b 8b8f916 4ebde2b 722f6da 9deabdc affe6ff 9deabdc affe6ff 9deabdc 722f6da 9426207 722f6da 9deabdc affe6ff 9deabdc affe6ff 9deabdc affe6ff 6b9a526 722f6da affe6ff c143758 affe6ff b27f14d 9deabdc 5ddda4c c143758 5ddda4c 9deabdc 5ddda4c 81a1c1a affe6ff 9deabdc affe6ff 9deabdc 5ddda4c b27f14d 9deabdc b27f14d 9426207 6b9a526 affe6ff 9deabdc affe6ff 9deabdc 722f6da 6b9a526 722f6da 9deabdc 5ddda4c c143758 6b9a526 affe6ff 9deabdc affe6ff 9deabdc 6b9a526 affe6ff 8b8f916 4ebde2b |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 |
# Dockerfile β AKIRA BOT HUGGING FACE SPACES (Atualizado Janeiro 2026)
# β
Otimizado para ambiente de containers restritos (sistema de arquivos somente leitura)
# β
CorreΓ§Γ£o de DNS/IPv4 para erro web.whatsapp.com no Hugging Face
# β
ConfiguraΓ§Γ£o DNS via NODE_OPTIONS (funciona em sistemas read-only)
FROM node:20-alpine
# βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
# VARIΓVEIS DE AMBIENTE (CORREΓΓO DE CONEXΓO DNS - CRΓTICO)
# βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
ENV NODE_ENV=production \
PORT=7860 \
TOOLS_INSTALLED=true \
# SOLUΓΓO PARA ERRO DNS NO HUGGING FACE (CRΓTICO PARA QR CODE):
# ForΓ§a IPv4 e usa DNS do Google via NODE_OPTIONS
NODE_OPTIONS="--dns-result-order=ipv4first --no-warnings" \
# ConfiguraΓ§Γ΅es de rede otimizadas para containers
UV_THREADPOOL_SIZE=128 \
LANG=C.UTF-8 \
# ConfiguraΓ§Γ΅es especΓficas para Hugging Face:
DATA_DIR=/tmp/akira_data
# βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
# NOTA: /etc/resolv.conf Γ© somente-leitura no HF Spaces!
# O DNS Γ© configurado via NODE_OPTIONS no comando de inicializaΓ§Γ£o
# e atravΓ©s de variΓ‘veis de ambiente do sistema
# βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
# βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
# INSTALAR DEPENDΓNCIAS DO SISTEMA ESSENCIAIS
# βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
# Removidas ferramentas pesadas de pentesting para reduzir tamanho e evitar problemas
RUN apk add --no-cache \
git \
curl \
wget \
python3 \
py3-pip \
make \
g++ \
cairo-dev \
pango-dev \
jpeg-dev \
giflib-dev \
ffmpeg \
yt-dlp \
ca-certificates \
openssl \
openssl-dev \
zlib-dev \
bash
# βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
# CONFIGURAΓΓO DE DIRETΓRIOS DE DADOS (USANDO /tmp PARA PERMISSΓES)
# βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
# No Hugging Face, /tmp Γ© o ΓΊnico diretΓ³rio com permissΓ΅es de escrita confiΓ‘veis
RUN mkdir -p /tmp/akira_data && \
mkdir -p /tmp/akira_data/auth_info_baileys && \
mkdir -p /tmp/akira_data/database && \
mkdir -p /tmp/akira_data/logs && \
mkdir -p /tmp/akira_data/temp && \
chmod -R 777 /tmp/akira_data
# βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
# VERIFICAΓΓO DE CONECTIVIDADE DE REDE
# βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
RUN echo "π Verificando conectividade de rede..." && \
curl -s --connect-timeout 10 https://httpbin.org/get >/dev/null && echo "β
Rede OK" || echo "β οΈ Rede pode ter restriΓ§Γ΅es"
# βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
# INSTALAR FERRAMENTAS BΓSICAS DO GITHUB (LEVES)
# βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
# 1. SQLMAP (opcional - comentado para reduzir tamanho)
# RUN mkdir -p /opt && \
# cd /opt && \
# git clone --depth 1 https://github.com/sqlmapproject/sqlmap.git && \
# chmod +x /opt/sqlmap/sqlmap.py && \
# ln -s /opt/sqlmap/sqlmap.py /usr/local/bin/sqlmap
# 2. Ferramentas Python leves - USANDO APK EM VEZ DE PIP
RUN apk add --no-cache py3-requests py3-beautifulsoup4
# βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
# CONFIGURAΓΓO DO DIRETΓRIO DE TRABALHO
# βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
WORKDIR /app
# βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
# INSTALAΓΓO DE DEPENDΓNCIAS NODE.JS (OTIMIZADA)
# βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
# Copiar package.json primeiro para otimizar o cache de camadas do Docker
COPY package*.json ./
# InstalaΓ§Γ£o otimizada para Hugging Face
RUN npm config set fetch-retry-mintimeout 30000 && \
npm config set fetch-retry-maxtimeout 180000 && \
npm install --omit=dev --no-audit --progress=false --fetch-retries=3 --legacy-peer-deps
# βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
# COPIAR CΓDIGO DA APLICAΓΓO
# βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
COPY . .
# βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
# AJUSTES DE ESTRUTURA (SE NECESSΓRIO)
# βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
# Verificar se modules existe, caso contrΓ‘rio criar estrutura bΓ‘sica
RUN if [ ! -d "./modules" ]; then \
echo "β οΈ Pasta modules nΓ£o encontrada, criando estrutura bΓ‘sica..." && \
mkdir -p modules; \
else \
echo "β
Estrutura de mΓ³dulos encontrada"; \
fi
# βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
# CONFIGURAΓΓO DE PERMISSΓES (ADAPTADA PARA HUGGING FACE)
# βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
# Usar usuΓ‘rio node (jΓ‘ existe no container)
USER node
# βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
# VERIFICAΓΓO FINAL
# βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
RUN echo "π Verificando instalaΓ§Γ£o..." && \
node -v && \
npm -v && \
python3 --version && \
python3 -c "import requests; import bs4; print('β
Python packages installed')" 2>/dev/null || echo "β οΈ Python packages not fully installed" && \
ffmpeg -version | head -1 && \
echo "β
Dockerfile construΓdo com sucesso para Hugging Face Spaces"
# Limpar cache para reduzir tamanho da imagem
RUN npm cache clean --force 2>/dev/null || true
# Porta padrΓ£o do Hugging Face
EXPOSE 7860
# Healthcheck adaptado para Hugging Face
HEALTHCHECK --interval=60s --timeout=20s --start-period=120s --retries=3 \
CMD curl -f http://localhost:7860/health 2>/dev/null || wget -q --spider http://localhost:7860/health 2>/dev/null || exit 1
# βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
# COMANDO DE INICIALIZAΓΓO COM DNS CONFIGURADO
# βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
# O DNS Γ© configurado via NODE_OPTIONS que forΓ§a IPv4
# O arquivo /etc/resolv.conf Γ© somente-leitura no HF Spaces,
# entΓ£o usamos apenas variΓ‘veis de ambiente e configuraΓ§Γ΅es do Node.js
CMD ["sh", "-c", "node --dns-result-order=ipv4first index.js"]
|