Improve Dockerfile with best practices and optimizations

This commit is contained in:
sunnypranay 2023-04-13 21:47:28 -05:00
parent a3024ca80d
commit 1f21998f0c

View File

@ -1,7 +1,23 @@
# Use an official Python base image from the Docker Hub
FROM python:3.11-slim
ENV PIP_NO_CACHE_DIR=yes
WORKDIR /app
COPY requirements.txt .
RUN pip install -r requirements.txt
COPY scripts/ .
ENTRYPOINT ["python", "main.py"]
# Set environment variables
ENV PIP_NO_CACHE_DIR=yes \
PYTHONUNBUFFERED=1 \
PYTHONDONTWRITEBYTECODE=1
# Create a non-root user and set permissions
RUN useradd --create-home appuser
WORKDIR /home/appuser
RUN chown appuser:appuser /home/appuser
USER appuser
# Copy the requirements.txt file and install the requirements
COPY --chown=appuser:appuser requirements.txt .
RUN pip install --no-cache-dir --user -r requirements.txt
# Copy the application files
COPY --chown=appuser:appuser scripts/ .
# Set the entrypoint
ENTRYPOINT ["python", "main.py"]