newforpro / Dockerfile
kushal2006's picture
Upload 3 files
33cf115 verified
# Use Python 3.10 slim image for a smaller footprint
FROM python:3.10-slim
# Set the working directory
WORKDIR /app
# Copy requirements first to leverage Docker cache
COPY requirements.txt .
RUN pip install --no-cache-dir --upgrade -r requirements.txt
# Download the spaCy model
RUN python -m spacy download en_core_web_sm
# Copy the rest of the application code
COPY . .
# Expose ports for FastAPI and Streamlit
EXPOSE 8000 8501
# Define environment variable for Streamlit to find the backend
ENV BACKEND_URL="http://localhost:8000"
# Create a startup script to run both services
RUN echo '#!/bin/bash' > /app/start.sh && \
echo 'set -e' >> /app/start.sh && \
echo 'uvicorn app:create_app --host 0.0.0.0 --port 8000 &' >> /app/start.sh && \
echo 'sleep 10' >> /app/start.sh && \
echo 'streamlit run streamlit_app.py --server.port 8501 --server.address 0.0.0.0 --server.enableCORS=false' >> /app/start.sh
RUN chmod +x /app/start.sh
# Run the startup script
CMD ["/app/start.sh"]