FROM debian:buster-slim
LABEL authors="Patrick Jentsch 
, Stephan Porada "
ENV LANG=C.UTF-8
RUN apt-get update
# Install pipeline dependencies #
## Install pyFlow ##
ENV PYFLOW_RELEASE=1.1.20
ADD "https://github.com/Illumina/pyflow/releases/download/v${PYFLOW_RELEASE}/pyflow-${PYFLOW_RELEASE}.tar.gz" .
RUN tar -xzf "pyflow-${PYFLOW_RELEASE}.tar.gz" \
 && cd "pyflow-${PYFLOW_RELEASE}" \
 && apt-get install --no-install-recommends --yes \
      python2.7 \
 && python2.7 setup.py build install \
 && cd .. \
 && rm -r "pyflow-${PYFLOW_RELEASE}" "pyflow-${PYFLOW_RELEASE}.tar.gz"
## Install spaCy ##
ENV SPACY_VERSION=3.0.3
RUN apt-get install --no-install-recommends --yes \
      python3.7 \
      python3-pip \
      zip \
 && pip3 install \
      chardet \
      setuptools \
      wheel \
 && pip3 install --upgrade pip \
 && pip3 install "spacy==${SPACY_VERSION}"
ENV SPACY_MODELS_VERSION=3.0.0
RUN python3 -m spacy download "da_core_news_md-${SPACY_MODELS_VERSION}" --direct \
 && python3 -m spacy download "de_core_news_md-${SPACY_MODELS_VERSION}" --direct \
 && python3 -m spacy download "el_core_news_md-${SPACY_MODELS_VERSION}" --direct \
 && python3 -m spacy download "en_core_web_md-${SPACY_MODELS_VERSION}" --direct \
 && python3 -m spacy download "es_core_news_md-${SPACY_MODELS_VERSION}" --direct \
 && python3 -m spacy download "fr_core_news_md-${SPACY_MODELS_VERSION}" --direct \
 && python3 -m spacy download "it_core_news_md-${SPACY_MODELS_VERSION}" --direct \
 && python3 -m spacy download "nl_core_news_md-${SPACY_MODELS_VERSION}" --direct \
 && python3 -m spacy download "pt_core_news_md-${SPACY_MODELS_VERSION}" --direct \
 && python3 -m spacy download "ru_core_news_md-${SPACY_MODELS_VERSION}" --direct \
 && python3 -m spacy download "zh_core_web_md-${SPACY_MODELS_VERSION}" --direct
## Install Pipeline ##
COPY nlp spacy-nlp /usr/local/bin/
RUN rm -r /var/lib/apt/lists/*
ENTRYPOINT ["nlp"]
CMD ["--help"]