Use language model in docker container

Hi there,

I am stuck trying to set up a docker container for my rasa project.

I have rasa v.1.0.6 installed on my local machine. I also downloaded spaCy’s german language model. Running local works totally fine. Starting up with rasa run --cors "*" shows me the following:

2019-06-06 09:05:45 INFO     root  - Starting Rasa Core server on http://localhost:5005
2019-06-06 09:05:46 INFO     rasa.nlu.components  - Added 'SpacyNLP' to component cache. Key 'SpacyNLP-de'.

My Dockerfile looks like this:

# Use rasa as a parent image
FROM rasa/rasa:1.0.6-spacy-de

# Set the working directory to /app
WORKDIR /app

# Copy the current directory contents into the container at /app
COPY . /app

# Get german language model for spaCy
RUN python -m spacy download de

EXPOSE 5005

# Runs the command rasa run --cors "*" on docker run chatbot
ENTRYPOINT ["rasa"]
CMD [ "run", "--cors", "'*'" ]

Starting up with docker run -p 5005:5005 chatbot only shows the first line:

2019-06-06 09:07:17 INFO     root  - Starting Rasa Core server on http://localhost:5005

I can reach the server via curl, but it does answer my request with “Hey! How are you?”, which looks like the sample project from rasa docker image.

Does anyone have any idea what I am doing wrong? I had following assumption: I need to train the model during docker build by adding rasa train after downloading german spaCy. Did not do the trick. Besides I copied my trained models with COPY . /app, which includes my models dir.

What am I missing?

Regards, Nick

Okay, I did not really miss anything. I simply started some old docker container, so it did not contain any new trained models.