Error deploying to Google Cloud Run: Multiprocessing

When deploying to Google Cloud Run I get the following error. Note that build process on Google works fine, just the deployment fails.

Traceback (most recent call last): 
File "/build/bin/rasa", line 8, in <module> sys.exit(main()) File "/build/lib/python3.6/site-packages/rasa/__main__.py", line 76, in main cmdline_arguments.func(cmdline_arguments)
File "/build/lib/python3.6/site-packages/rasa/cli/run.py", line 83, in run rasa.run(**vars(args))
File "/build/lib/python3.6/site-packages/rasa/run.py", line 56, in run **kwargs,
File "/build/lib/python3.6/site-packages/rasa/core/run.py", line 173, in serve_application log_file=log_file,
File "/build/lib/python3.6/site-packages/rasa/core/run.py", line 102, in configure_app endpoints=endpoints,
File "/build/lib/python3.6/site-packages/rasa/server.py", line 401, in create_app app.active_training_processes = multiprocessing.Value("I", 0)
File "/usr/local/lib/python3.6/multiprocessing/context.py", line 135, in Value ctx=self.get_context())
File "/usr/local/lib/python3.6/multiprocessing/sharedctypes.py", line 78, in Value lock = ctx.RLock()
File "/usr/local/lib/python3.6/multiprocessing/context.py", line 72, in RLock return RLock(ctx=self.get_context())
File "/usr/local/lib/python3.6/multiprocessing/synchronize.py", line 187, in __init__ SemLock.__init__(self, RECURSIVE_MUTEX, 1, 1, ctx=ctx)
File "/usr/local/lib/python3.6/multiprocessing/synchronize.py", line 59, in __init__ unlink_now) OSError: [Errno 38] Function not implemented

Here are the contents of my dockerfile:

FROM rasa/rasa:1.6.0
ENV BOT_ENV=production
COPY --chown=1001 . /var/www
WORKDIR /var/www
RUN rasa train
ENTRYPOINT [ "rasa", "run", "-p", "8080", "--enable-api", "--cors"]

Grateful for any help

To answer my own question (in case anyone else needs this), it is possible to get it to run by downloading the source, hacking this line and building your own Rasa Docker image:

File "/build/lib/python3.6/site-packages/rasa/server.py", line 401, in create_app app.active_training_processes = multiprocessing.Value("I", 0)

To

app.active_training_processes = 1

BUT…

Google Run isn’t really a good fit for Rasa since the cold start takes 60-90 seconds.