|
| 1 | +FROM python:3.10 as base |
| 2 | +LABEL maintainer="Espoir Murhabazi<espoir.mur [] gmail>" |
| 3 | + |
| 4 | + |
| 5 | +# Never prompt the user for choices on installation/configuration of packages |
| 6 | +ENV DEBIAN_FRONTEND noninteractive |
| 7 | +ENV PYTHONUNBUFFERED=1 \ |
| 8 | + PORT=9000 \ |
| 9 | + PYTHONDONTWRITEBYTECODE=1 \ |
| 10 | + PIP_NO_CACHE_DIR=off \ |
| 11 | + PIP_DISABLE_PIP_VERSION_CHECK=on \ |
| 12 | + PIP_DEFAULT_TIMEOUT=100 |
| 13 | + |
| 14 | + |
| 15 | +FROM base AS python-deps |
| 16 | +RUN apt-get update \ |
| 17 | + && apt-get install --no-install-recommends -y \ |
| 18 | + curl \ |
| 19 | + build-essential\ |
| 20 | + software-properties-common |
| 21 | + |
| 22 | +RUN python -m venv /opt/venv |
| 23 | +# Make sure we use the virtualenv: |
| 24 | +ENV PATH="/opt/venv/bin:$PATH" |
| 25 | + |
| 26 | +# Install pip |
| 27 | +COPY requirements.txt ./ |
| 28 | +RUN pip install --upgrade pip |
| 29 | +RUN pip install -r requirements.txt |
| 30 | + |
| 31 | + |
| 32 | + |
| 33 | +FROM base AS runtime |
| 34 | +# copy nltk data |
| 35 | +COPY --from=python-deps /opt/venv /opt/venv |
| 36 | + |
| 37 | + |
| 38 | +RUN useradd --create-home masakhane |
| 39 | +RUN usermod -aG sudo masakhane |
| 40 | +RUN mkdir /home/masakhane/translation_app/ |
| 41 | +ENV WORKING_DIR=/home/masakhane/translation_app/ |
| 42 | +ENV PATH="${WORKING_DIR}:$PATH" |
| 43 | +ENV PATH="/opt/venv/bin:$PATH" |
| 44 | +ENV PYTHONPATH="/opt/venv/bin:$PYTHONPATH" |
| 45 | +ENV PYTHONPATH="${PYTHONPATH}:${WORKING_DIR}" |
| 46 | + |
| 47 | +ENV MODEL_NAME model_handlers.OptimizedM100Model |
| 48 | + |
| 49 | +ENV SERVICE_TYPE MODEL |
| 50 | + |
| 51 | +COPY model_handlers.py ${WORKING_DIR} |
| 52 | +WORKDIR ${WORKING_DIR} |
| 53 | +RUN chown -R masakhane:masakhane ${WORKING_DIR} |
| 54 | +RUN chmod -R 777 ${WORKING_DIR} |
| 55 | +USER masakhane |
| 56 | +EXPOSE 9000 5000 |
| 57 | + |
| 58 | +CMD exec seldon-core-microservice $MODEL_NAME --service-type $SERVICE_TYPE |
0 commit comments