Spaces:
Running
Running
File size: 1,252 Bytes
ed51280 fa35073 ed51280 fa35073 b3ec637 09a270d b3ec637 ed51280 b3ec637 ed51280 | 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 | FROM python:3.11-slim
# Set working directory
WORKDIR /app
# Install system dependencies needed by some Python packages
RUN apt-get update && apt-get install -y --no-install-recommends \
build-essential \
curl \
&& rm -rf /var/lib/apt/lists/*
# Copy requirements first (Docker layer caching)
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
# Download NLTK data at build time so it's baked into the image
RUN python -c "import nltk; nltk.download('punkt'); nltk.download('punkt_tab'); nltk.download('stopwords')"
# Copy application code
COPY app.py .
COPY agent.py .
COPY tools.py .
COPY agents.py .
COPY run_specter.py .
COPY computation_clusters.py .
COPY research_chatbot.py .
# Copy datasets (bundled as defaults)
COPY dataset.csv .
COPY computation.csv .
# Create writable outputs directory
RUN mkdir -p /app/outputs && chmod 777 /app/outputs
# Expose Streamlit port
EXPOSE 8501
# Health check
HEALTHCHECK CMD curl --fail http://localhost:8501/_stcore/health || exit 1
# Run Streamlit
CMD ["streamlit", "run", "app.py", \
"--server.port=8501", \
"--server.address=0.0.0.0", \
"--server.headless=true", \
"--browser.gatherUsageStats=false", \
"--server.fileWatcherType=none"]
|