Search code examples
dockerdocker-composerasa-nlurasa

Rasa - Docker Permission denied: 'models/20200427-162547.tar.gz'


I'm trying to user docker with Rasa from image rasa/rasa:1.8.1-full

I have the following docker-compose file

version: '3.0'
services:
  rasa:
    image: rasa/rasa:1.8.1-full
    ports:
      - 5005:5005
    volumes:
      - ./:/app
    command: 
      - run
      - --cors
      - "*"
      - --enable-api
    depends_on:
      - actions

... more services ...

So far so good,I can run a docker-compose up and both services will be up and running, however, when I connect to rasa service to train it by docker-compose exec rasa /bin/bash, the user 1001 has no write permission.

Since I do not want to keep my own dockerfile/image in this case, and by default the official rasa image uses the user 1001, I don't know what I can do about it.

Should I pass the trained file already to the container? The machine who will host the container will not have Rasa installed...


Solution

  • I would suggest to create your own Docker image starting from rasa:1.8.1-full: in your Dockerfile you can then add the files that rasa needs (model, domain, stories, etc..).
    The result will be an image including Rasa runtime and the model you train/test locally, which can run on any Docker environment (no need to worry about Rasa being available as it will be included in your image).

    As you train new models (and change the stories) you can repackage and redeploy,