File size: 2,323 Bytes
a7e315c
 
 
72e8b95
 
 
d9c7f67
 
 
 
 
 
1e1c12a
e47ddc5
 
 
1e1c12a
a45f133
1e1c12a
a45f133
a7e315c
 
0924006
a7e315c
ac82c9e
a7e315c
1e1c12a
97ac3fa
a7e315c
09e4971
d9cd0da
a7e315c
 
 
 
 
 
 
 
 
45b8fe4
0924006
a7e315c
 
 
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
# Usa la imagen oficial de Redis
FROM redis:latest

# Crea el directorio de la aplicaci贸n
WORKDIR /usr/src/app

# Instala curl y ngrok
RUN apt-get update && apt-get install -y curl unzip && \
    curl -sSL https://ngrok-agent.s3.amazonaws.com/ngrok.asc | tee /etc/apt/trusted.gpg.d/ngrok.asc >/dev/null && \
    echo "deb https://ngrok-agent.s3.amazonaws.com buster main" | tee /etc/apt/sources.list.d/ngrok.list && \
    apt-get update && \
    apt-get install -y ngrok

# Crea el directorio para la configuraci贸n de Redis
RUN mkdir -p /usr/local/etc/redis

# Genera una contrase帽a y un token de Ngrok basado en t茅rminos de Hugging Face Spaces
RUN REDIS_PASSWORD="huggingface_spaces_$(date +%s | sha256sum | base64 | head -c 32)" && \
    NGROK_AUTH_TOKEN="huggingface_$(date +%s | sha256sum | base64 | head -c 20)" && \
    echo "requirepass \$REDIS_PASSWORD" > /usr/local/etc/redis/redis.conf && \
    echo "save ''" >> /usr/local/etc/redis/redis.conf && \
    echo "appendonly no" >> /usr/local/etc/redis/redis.conf && \
    echo "port 7860" >> /usr/local/etc/redis/redis.conf && \
    echo '#!/bin/bash' > /usr/local/bin/start-redis.sh && \
    echo 'echo "La contrase帽a de Redis es: ${REDIS_PASSWORD}"' >> /usr/local/bin/start-redis.sh && \
    echo 'redis-server /usr/local/etc/redis/redis.conf &' >> /usr/local/bin/start-redis.sh && \
    echo 'sleep 2' >> /usr/local/bin/start-redis.sh && \
    echo 'ngrok http 7860 --authtoken ${NGROK_AUTH_TOKEN} &' >> /usr/local/bin/start-redis.sh && \
    echo 'while true; do' >> /usr/local/bin/start-redis.sh && \
    echo '    sleep 5;' >> /usr/local/bin/start-redis.sh && \
    echo '    if ! pidof redis-server > /dev/null; then' >> /usr/local/bin/start-redis.sh && \
    echo '        echo "Redis ha dejado de funcionar. Reiniciando...";' >> /usr/local/bin/start-redis.sh && \
    echo '        redis-server /usr/local/etc/redis/redis.conf &' >> /usr/local/bin/start-redis.sh && \
    echo '    fi' >> /usr/local/bin/start-redis.sh && \
    echo 'done' >> /usr/local/bin/start-redis.sh && \
    chmod +x /usr/local/bin/start-redis.sh

# Establece permisos en las carpetas necesarias
RUN chmod -R 777 /usr/local/etc/redis /usr/src/app

# Exponer el puerto de Redis
EXPOSE 7860

# Comando para ejecutar el script de supervisi贸n
CMD ["/usr/local/bin/start-redis.sh"]