Skip to content
Snippets Groups Projects
Dockerfile 1.23 KiB
Newer Older
  • Learn to ignore specific revisions
  • FROM python:3.10-slim as base
    LABEL maintainer="David Trattnig <david@subsquare.at>"
    
    David Trattnig's avatar
    David Trattnig committed
    
    
    ENV UID=1000
    ENV GID=1000
    ENV USER=app
    
    # 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
    
    David Trattnig's avatar
    David Trattnig committed
    
    
    # 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"
    
    David Trattnig's avatar
    David Trattnig committed
    
    
    # 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 set -e \
          && adduser --home /srv --no-create-home --system --uid ${UID} --group ${USER} \
          && chown -R ${UID}:${GID} /srv /etc/aura
    
    David Trattnig's avatar
    David Trattnig committed
    
    
    # Start Service
    EXPOSE 8008
    ENTRYPOINT ["make"]
    
    CMD ["run.gunicorn"]