【发布时间】:2020-02-21 19:40:14
【问题描述】:
我有以下 Dockerfile,用于在 Google 的 App Engine 上部署 Rasa Bot 应用程序:
FROM rasa/rasa
ENV BOT_ENV=development
COPY . /var/www
WORKDIR /var/www
RUN pip install rasa phonenumbers pgeocode
#ENTRYPOINT ["rasa", "run", "-vv", "--enable-api", "actions"]
ENTRYPOINT ["rasa", "run", "-vv", "--enable-api", "--endpoints", "endpoints.yml", "--credentials", "credentials.yml", "-p", "8080"]
但部署无法安装phonenumbers 和pgeocode 包,不知怎的,rasa 没有问题。
我得到的错误是这样的:
ERROR: Could not install packages due to an EnvironmentError: [Errno 13] Permission denied: '/build/lib/python3.6/site-packages/phonenumbers'
Consider using the `--user` option or check the permissions.
The command '/bin/sh -c pip install rasa phonenumbers pgeocode' returned a non-zero code: 1
ERROR
ERROR: build step 0 "gcr.io/cloud-builders/docker" failed: step exited with non-zero status: 1
我已尝试按照建议使用 --user,在其他一些问题中,我看到建议使用带有 -H 标志的 sudo 的答案,但这也失败了,另一个错误表明 sudo 不是认可。
如果我删除这 2 个失败的包,我的应用程序会运行,但它无法执行需要这些包的某些操作。
知道如何解决这个问题吗?
谢谢!
【问题讨论】:
-
使用
--user时请附上失败信息。 -
我不认为
sudo是默认安装在 debian 上的,这就是这个图像使用的。你可以试试安装。您可能还想尝试将USER 0添加到 dockerfile 中,这表示使用 root 用户,该用户应具有完全权限。
标签: python google-app-engine google-cloud-platform dockerfile rasa