TIME-leaderboard / Dockerfile
zqiao11's picture
Initial release
0b97f6a
FROM python:3.10-slim
WORKDIR /app
# Install git for pip install from GitHub
RUN apt-get update && apt-get install -y git && rm -rf /var/lib/apt/lists/*
# Copy requirements first for better caching
COPY requirements.txt .
# Install Python dependencies
RUN pip install --no-cache-dir --upgrade pip && \
pip install --no-cache-dir -r requirements.txt
# Copy application code
COPY . .
# Create startup script that installs timebench at runtime (when secrets are available)
RUN echo '#!/bin/bash\n\
if [ -n "$GITHUB_TOKEN" ]; then\n\
echo "Installing timebench from private GitHub repo..."\n\
pip install --no-cache-dir git+https://oauth2:${GITHUB_TOKEN}@github.com/zqiao11/TIME.git\n\
else\n\
echo "Installing timebench from public GitHub repo..."\n\
pip install --no-cache-dir git+https://github.com/zqiao11/TIME.git\n\
fi\n\
exec python app.py\n' > /app/start.sh && chmod +x /app/start.sh
# Expose Gradio default port
EXPOSE 7860
# Set environment variables
ENV GRADIO_SERVER_NAME="0.0.0.0"
ENV GRADIO_SERVER_PORT="7860"
# Run the startup script
CMD ["/app/start.sh"]