diff --git a/Dockerfile b/Dockerfile index 4da119f..a97dce6 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,30 +1,25 @@ -# FROM python:3.12.9-alpine3.21 FROM python:3.12-slim # Set environment variables -ENV PYTHONDONTWRITEBYTECODE=1 -ENV PYTHONUNBUFFERED=1 +ENV PYTHONDONTWRITEBYTECODE=1 \ + PYTHONUNBUFFERED=1 # Set the working directory inside the container WORKDIR /app # Install system dependencies required for MySQL and other libraries -RUN apt-get update && apt-get install -y git -# default-libmysqlclient-dev \ -# build-essential \ -# && rm -rf /var/lib/apt/lists/* +RUN RUN apt-get update && apt-get install -y --no-install-recommends git && \ + rm -rf /var/lib/apt/lists/* -RUN mkdir files/ -COPY files/requirements.txt files/requirements.txt +# Create a new non-root user and switch to it +RUN groupadd --system appuser && useradd --system --create-home --gid appuser appuser + +COPY files/requirements.txt /tmp/requirements.txt RUN sleep 5 # Install Python dependencies -RUN pip install --upgrade pip -RUN pip install --no-cache-dir -r files/requirements.txt - -# Expose port 8080 for the FastAPI application -# EXPOSE 8080 +RUN pip install --upgrade pip && pip install --no-cache-dir -r /tmp/requirements.txt COPY . . @@ -32,6 +27,11 @@ RUN rm files/db.sqlite -f RUN /usr/local/bin/alembic -c alembic/alembic.ini upgrade head -# Command to run the FastAPI application -# CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8080"] -CMD ["bash", "/app/scripts/run.sh"] \ No newline at end of file +# Change ownership to the new user +RUN chown -R appuser:appuser /app + +# Switch to the new non-root user +USER appuser + + +CMD ["bash", "/app/scripts/run.sh"]