|
|
-
- ARG PYTHON_VERSION=3.11.4
- FROM python:${PYTHON_VERSION}-slim AS base
-
- # Prevents Python from writing pyc files.
- ENV PYTHONDONTWRITEBYTECODE=1
-
- # Keeps Python from buffering stdout and stderr to avoid situations where
- # the application crashes without emitting any logs due to buffering.
- ENV PYTHONUNBUFFERED=1
-
- WORKDIR /opt/fastapiserver
-
- # Create a non-privileged user that the app will run under.
- # See https://docs.docker.com/go/dockerfile-user-best-practices/
- #ARG UID=10001
- #RUN adduser \
- # --disabled-password \
- # --gecos "" \
- # --home "/nonexistent" \
- # --shell "/sbin/nologin" \
- # --no-create-home \
- # --uid "${UID}" \
- # appuser
-
- # Download dependencies as a separate step to take advantage of Docker's caching.
- # Leverage a cache mount to /root/.cache/pip to speed up subsequent builds.
- # Leverage a bind mount to requirements.txt to avoid having to copy them into
- # into this layer.
- #RUN --mount=type=cache,target=/root/.cache/pip
- # --mount=type=bind,source=requirements.txt,target=requirements.txt \
- # python -m pip install -r requirements.txt
- RUN --mount=type=cache,target=/root/.cache/pip \
- --mount=type=bind,source=requirements.txt,target=requirements.txt \
- python -m pip install -r requirements.txt
-
- # Switch to the non-privileged user to run the application.
- #USER appuser
-
- CMD python -m uvicorn fastapi_server:app --reload --host 0.0.0.0 --port 8001
-
- #CMD /bin/sh -c "while true; do sleep 30; done"
|