-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdocker-entrypoint.sh
More file actions
executable file
·116 lines (97 loc) · 3.54 KB
/
Copy pathdocker-entrypoint.sh
File metadata and controls
executable file
·116 lines (97 loc) · 3.54 KB
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
#!/bin/bash
# ====================================
# Whisper-Insights - Docker Entrypoint
# ====================================
set -e
# Configurar logs
echo "🐳 Iniciando Whisper-Insights no Docker..."
echo "📅 $(date)"
echo "🔧 Usuário: $(whoami)"
echo "📁 Diretório: $(pwd)"
# Verificar arquivos de configuração
if [ -f ".env" ]; then
echo "✅ Arquivo .env encontrado"
else
echo "⚠️ Arquivo .env não encontrado, usando .env.example como base"
if [ -f ".env.example" ]; then
cp .env.example .env
echo "✅ .env criado a partir do .env.example"
fi
fi
# Verificar dependências críticas
echo "🔍 Verificando dependências..."
# Verificar ffmpeg
if command -v ffmpeg >/dev/null 2>&1; then
echo "✅ ffmpeg disponível: $(ffmpeg -version | head -n1)"
else
echo "❌ ffmpeg não encontrado!"
exit 1
fi
# Verificar Python e dependências
echo "🐍 Python: $(python --version)"
echo "📦 Verificando pacotes Python críticos..."
python -c "import flask; print('✅ Flask:', flask.__version__)" || exit 1
python -c "import whisper; print('✅ OpenAI Whisper disponível')" || exit 1
python -c "import torch; print('✅ PyTorch:', torch.__version__)" || exit 1
# Verificar estrutura de diretórios
echo "📁 Verificando estrutura de diretórios..."
for dir in uploads logs public templates services helpers; do
if [ -d "$dir" ]; then
echo "✅ Diretório $dir existe"
else
echo "⚠️ Criando diretório $dir"
mkdir -p "$dir"
fi
done
# Verificar permissões
echo "🔐 Verificando permissões..."
# Tentar corrigir permissões primeiro
chown -R whisper:whisper uploads logs 2>/dev/null || true
chmod -R 755 uploads logs 2>/dev/null || true
if [ -w uploads ] && [ -w logs ]; then
echo "✅ Permissões de escrita OK"
else
echo "⚠️ Problemas de permissão detectados, tentando correção..."
# Tentar criar os diretórios novamente com permissões corretas
mkdir -p uploads logs
chown -R whisper:whisper uploads logs 2>/dev/null || true
chmod -R 755 uploads logs 2>/dev/null || true
if [ -w uploads ] && [ -w logs ]; then
echo "✅ Permissões corrigidas com sucesso"
else
echo "⚠️ Permissões limitadas, mas continuando execução"
fi
fi
# Configurar logging
export PYTHONPATH=/app
export PYTHONUNBUFFERED=1
# Verificar saúde dos serviços opcionais
echo "🔍 Verificando serviços opcionais..."
# Verificar Ollama (opcional)
if [ ! -z "$OLLAMA_BASE_URL" ]; then
echo "🤖 Verificando Ollama em $OLLAMA_BASE_URL"
if curl -s "$OLLAMA_BASE_URL/api/tags" >/dev/null 2>&1; then
echo "✅ Ollama disponível"
else
echo "⚠️ Ollama não disponível (continuando sem insights de IA)"
fi
fi
# Verificar token Hugging Face (opcional)
if [ ! -z "$HUGGING_FACE_TOKEN" ]; then
echo "🤗 Token Hugging Face configurado (diarização disponível)"
else
echo "⚠️ Token Hugging Face não configurado (diarização indisponível)"
fi
# Limpar cache antigo se necessário
echo "🧹 Limpeza de cache..."
find uploads -name "*.tmp" -mtime +1 -delete 2>/dev/null || true
# Configurar timezone (se especificado)
if [ ! -z "$TZ" ]; then
echo "🌍 Configurando timezone para $TZ"
export TZ
fi
echo "🚀 Configuração concluída, iniciando aplicação..."
echo "🌐 Aplicação estará disponível em http://localhost:5001"
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
# Executar comando
exec "$@"