# pull official base image FROM python:3.11.2-slim-buster AS prod # set working directory WORKDIR /usr/src/app # set environment variables ENV PYTHONDONTWRITEBYTECODE 1 ENV PYTHONUNBUFFERED 1 ARG SECRET_KEY ENV SECRET_KEY $SECRET_KEY RUN apt-get update \ && apt-get -y install netcat gcc curl \ && apt-get clean \ && groupadd -g 999 python \ && useradd -r -u 999 -g python python \ && python -m venv /usr/src/app/.venv \ && chown -R python:python /usr/src/app ENV PATH="/usr/src/app/.venv/bin:$PATH" ENV PIP_NO_CACHE_DIR=off USER 999 COPY --chown=python:python requirements.txt requirements.txt RUN python -m pip install --upgrade pip && \ python -m pip install -r requirements.txt COPY --chown=python:python . . # run gunicorn CMD ["/usr/src/app/.venv/bin/gunicorn", "src.api.main:app", "--worker-class", "uvicorn.workers.UvicornWorker"]