thliang01's picture
chore: add config
c19475f unverified
# Use a slim Python image for a smaller container size.
FROM python:3.13.5-slim
# Set the working directory inside the container.
WORKDIR /app
# Install system dependencies needed for some Python packages.
RUN apt-get update && apt-get install -y \
build-essential \
curl \
git \
&& rm -rf /var/lib/apt/lists/*
# Copy the requirements file first to leverage Docker's build cache.
COPY requirements.txt ./
# Install Python dependencies. This step will re-run only if requirements.txt changes.
RUN pip3 install -r requirements.txt
# Copy the rest of the application files.
COPY streamlit_app.py ./
COPY .streamlit/config.toml .streamlit/
# Create a non-root user to run the app. This is a security best practice.
RUN useradd -ms /bin/bash streamlit
RUN chown -R streamlit:streamlit /app
USER streamlit
# Expose the port Streamlit uses.
EXPOSE 8501
# Add a health check to verify the app is running.
HEALTHCHECK CMD curl --fail http://localhost:8501/_stcore/health
# Define the command to run the application.
ENTRYPOINT ["streamlit", "run", "streamlit_app.py", "--server.port=8501", "--server.address=0.0.0.0"]