# syntax=docker/dockerfile:1 FROM python:3 # Create non-root user ARG CUSTOM_UID ARG CUSTOM_GID ENV CUSTOM_USERNAME=backend ENV CUSTOM_GROUPNAME=backend RUN groupadd --gid ${CUSTOM_GID:-1000} ${CUSTOM_GROUPNAME} && \ useradd --uid ${CUSTOM_UID:-1000} --gid ${CUSTOM_GID:-1000} --create-home --shell /bin/bash ${CUSTOM_USERNAME} && \ mkdir /app && chown ${CUSTOM_UID:-1000}:${CUSTOM_GID:-1000} /app # Copy source files WORKDIR /app COPY --chown=${CUSTOM_USERNAME}:${CUSTOM_GROUPNAME} requirements.txt /app/ COPY --chown=${CUSTOM_USERNAME}:${CUSTOM_GROUPNAME} backend /app/backend/ # Install dependencies RUN pip install -r requirements.txt # Run ASGI server EXPOSE 3001/tcp USER ${CUSTOM_UID:-1000}:${CUSTOM_GID:-1000} ENTRYPOINT ["uvicorn", "backend.main:app", "--root-path", "/api", "--host", "0.0.0.0", "--port", "3001", "--access-log", "--use-colors", "--log-level", "debug", "--reload"]