advisorai-data-enhanced / Dockerfile.gradio
Maaroufabousaleh
f
c49b21b
###############################
# Gradio-optimized Dockerfile
###############################
FROM python:3.11-slim
WORKDIR /app
# Install system dependencies
RUN apt-get update && apt-get install -y --no-install-recommends \
gcc \
libgomp1 \
supervisor \
&& rm -rf /var/lib/apt/lists/* \
&& apt-get clean
# Copy requirements and install Python dependencies
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt \
&& pip cache purge
# Create necessary directories
RUN mkdir -p /data/logs \
&& mkdir -p /data/merged/features \
&& mkdir -p /data/merged/train \
&& mkdir -p /data/alpaca \
&& mkdir -p /data/advisorai-data \
&& mkdir -p /data/nltk_data \
&& chmod -R 777 /data
# Copy application code
COPY . .
# Set executable permissions
RUN chmod +x /app/deployment/gradio_entrypoint.sh
# Set environment variables
ENV PYTHONPATH=/app:/app/src
ENV PYTHONUNBUFFERED=1
ENV PYTHONIOENCODING=utf-8
ENV NLTK_DATA=/data/nltk_data
# Create simplified supervisord config for Gradio
RUN echo '[supervisord]\n\
nodaemon=true\n\
logfile=/dev/stdout\n\
logfile_maxbytes=0\n\
pidfile=/tmp/supervisord.pid\n\
loglevel=info\n\
\n\
[program:gradio]\n\
command=python /app/app.py\n\
directory=/app\n\
autostart=true\n\
autorestart=true\n\
stdout_logfile=/dev/stdout\n\
stderr_logfile=/dev/stderr\n\
stdout_logfile_maxbytes=0\n\
stderr_logfile_maxbytes=0\n\
startsecs=10\n\
startretries=3\n\
stopwaitsecs=30\n\
killasgroup=true\n\
stopasgroup=true\n\
environment=PYTHONPATH="/app:/app/src"\n\
\n\
[program:scheduler]\n\
command=/bin/sh -c "sleep 180 && python /app/deployment/scheduler.py"\n\
directory=/app\n\
autostart=true\n\
autorestart=true\n\
startsecs=0\n\
stdout_logfile=/dev/stdout\n\
stderr_logfile=/dev/stderr\n\
stdout_logfile_maxbytes=0\n\
stderr_logfile_maxbytes=0\n\
startretries=3\n\
stopwaitsecs=60\n\
killasgroup=true\n\
stopasgroup=true' > /etc/supervisord_gradio.conf
ENTRYPOINT ["/app/deployment/gradio_entrypoint.sh"]
# Expose Gradio port
EXPOSE 7860
CMD ["supervisord", "-c", "/etc/supervisord_gradio.conf"]