FROM debian:9-slim


# Define image metadata
LABEL maintainer="inf_sfb1288@lists.uni-bielefeld.de"


# Install prerequisites
RUN apt-get update \
 && apt-get install -y --no-install-recommends \
      python2.7 \
      python3.5 \
      python3-pip \
 && rm -rf /var/lib/apt/lists/* \
 && pip3 install \
      setuptools \
      wheel

ENV PYFLOW_VERSION=1.1.20
ADD "https://github.com/Illumina/pyflow/releases/download/v${PYFLOW_VERSION}/pyflow-${PYFLOW_VERSION}.tar.gz" .
RUN tar -xzf "pyflow-${PYFLOW_VERSION}.tar.gz" \
 && cd "pyflow-${PYFLOW_VERSION}" \
 && python2.7 setup.py build install \
 && cd .. \
 && rm -rf \
      "pyflow-${PYFLOW_VERSION}" \
      "pyflow-${PYFLOW_VERSION}.tar.gz"

ENV SPACY_MODELS_DE=de_core_news_sm \
    SPACY_MODELS_EL=el_core_news_sm \
    SPACY_MODELS_EN=en_core_web_sm \
    SPACY_MODELS_ES=es_core_news_sm \
    SPACY_MODELS_FR=fr_core_news_sm \
    SPACY_MODELS_IT=it_core_news_sm \
    SPACY_MODELS_NL=nl_core_news_sm \
    SPACY_MODELS_PT=pt_core_news_sm \
    SPACY_VERSION=2.1.0
RUN pip3 install \
      "spacy==${SPACY_VERSION}" \
      "https://github.com/explosion/spacy-models/releases/download/${SPACY_MODELS_DE}-${SPACY_VERSION}/${SPACY_MODELS_DE}-${SPACY_VERSION}.tar.gz" \
      "https://github.com/explosion/spacy-models/releases/download/${SPACY_MODELS_EL}-${SPACY_VERSION}/${SPACY_MODELS_EL}-${SPACY_VERSION}.tar.gz" \
      "https://github.com/explosion/spacy-models/releases/download/${SPACY_MODELS_EN}-${SPACY_VERSION}/${SPACY_MODELS_EN}-${SPACY_VERSION}.tar.gz" \
      "https://github.com/explosion/spacy-models/releases/download/${SPACY_MODELS_ES}-${SPACY_VERSION}/${SPACY_MODELS_ES}-${SPACY_VERSION}.tar.gz" \
      "https://github.com/explosion/spacy-models/releases/download/${SPACY_MODELS_FR}-${SPACY_VERSION}/${SPACY_MODELS_FR}-${SPACY_VERSION}.tar.gz" \
      "https://github.com/explosion/spacy-models/releases/download/${SPACY_MODELS_IT}-${SPACY_VERSION}/${SPACY_MODELS_IT}-${SPACY_VERSION}.tar.gz" \
      "https://github.com/explosion/spacy-models/releases/download/${SPACY_MODELS_NL}-${SPACY_VERSION}/${SPACY_MODELS_NL}-${SPACY_VERSION}.tar.gz" \
      "https://github.com/explosion/spacy-models/releases/download/${SPACY_MODELS_PT}-${SPACY_VERSION}/${SPACY_MODELS_PT}-${SPACY_VERSION}.tar.gz"


# Install NLP pipeline
COPY nlp /usr/local/bin
COPY spacy_nlp /usr/local/bin


ENTRYPOINT ["nlp"]
CMD ["--help"]