Стэнфордский НЛП сервер на Docker - PullRequest
0 голосов
/ 16 апреля 2020

Я хочу докеризировать мое приложение, которое использует сервер Stanford NLP. Это приложение работает правильно, когда я запускаю его локально. Тем не менее, когда я пытаюсь запустить его в docker, я продолжаю получать эту ошибку: PermanentlyFailedException: Превышено время ожидания ожидания запуска службы. "Я думаю, что проблема может быть связана с тем, что приложение не может получить доступ к папке corenlp, которая хранится локально на моем компьютере, но я не уверен, как решить это или что должен содержать мой dockerfile.

Вот пример кода из приложения:

from stanfordnlp.server import CoreNLPClient
import os
def stMain():

target_dir = "path to stanford corenlp"
os.environ["CORENLP_HOME"] = target_dir +"/corenlp/stanford-corenlp-full-2018-10-05"

client = CoreNLPClient(server='http://localhost:9000', default_annotators=['ssplit', 'tokenize', 'lemma', 'pos', 'ner'])
annotated = client.annotate('This is an example document. Here is a second sentence')
print(annotated)

А вот мой dockerfile:

FROM python:3.6-slim
WORKDIR /usr/src/app
COPY . .


RUN mkdir -p /usr/share/man/man1


#COPY ./app /app
# Install OpenJDK-8
RUN apt-get update && \
    apt-get install -y default-jre && \
    apt-get install -y default-jdk && \
    apt-get install -y ant && \
    apt-get clean;

# Fix certificate issues
RUN apt-get update && \
    apt-get install ca-certificates-java && \
    apt-get clean && \
    update-ca-certificates -f;

# Setup JAVA_HOME -- useful for docker commandline
ENV JAVA_HOME /usr/lib/jvm/java-8-openjdk-amd64/
RUN export JAVA_HOME


RUN pip install --trusted-host pypi.org --trusted-host pypi.python.org \
        --trusted-host files.pythonhosted.org -r requirements.txt
#EXPOSE 80

ENV PORT 9000
EXPOSE $PORT
CMD ["gunicorn", "app.mainAPI:app", "-b", "0.0.0.0:9000", "--timeout", "400"]
...