FROM python:3.10-slim as base LABEL maintainer="David Trattnig <david@subsquare.at>" ENV AURA_UID=2872 ENV AURA_GID=2872 # Configure Poetry ENV POETRY_VERSION=1.3.2 ENV POETRY_HOME=/opt/poetry ENV POETRY_VENV=/opt/poetry-venv ENV POETRY_CACHE_DIR=/opt/.cache # System Dependencies RUN apt-get update && apt-get -y install \ apt-utils \ build-essential \ pip \ ncat # Setup Poetry RUN python3 -m venv $POETRY_VENV \ && $POETRY_VENV/bin/pip install -U pip setuptools \ && $POETRY_VENV/bin/pip install poetry==${POETRY_VERSION} ENV PATH="${PATH}:${POETRY_VENV}/bin" # Base Structure RUN mkdir -p /srv/src/aura_engine_api /srv/config /srv/logs /etc/aura COPY pyproject.toml poetry.lock README.md Makefile /srv/ WORKDIR /srv # Init Application COPY ./src/aura_engine_api /srv/src/aura_engine_api COPY ./config/sample/gunicorn/sample-docker.gunicorn.conf.py /srv/config/gunicorn.conf.py COPY ./config/sample.engine-api.docker.ini /srv/config/engine-api.ini RUN poetry install --no-interaction --no-ansi # Update Permissions RUN groupadd --gid ${AURA_GID} aura && \ useradd --gid ${AURA_GID} --no-user-group --uid ${AURA_UID} --home-dir /srv --no-create-home aura && \ chown -R ${AURA_UID}:${AURA_GID} /srv /etc/aura USER aura # Start Service EXPOSE 8008 ENTRYPOINT ["make"] CMD ["run.gunicorn"]