我正在尝试使用具有给定链接的docker构建rasa,尝试在Ubuntu上运行命令sudo docker-compose up
时,我一直收到此错误。
请帮助我解决这个问题。
我已经附加了docker-compose.yml
文件的图像以及创建的docker图像和我的文件夹的图片。
答案 0 :(得分:0)
似乎您的docker-compose文件中的配置错误。不应这样使用“命令”部分。
这是docker-compose version 3 reference的摘录:
命令
覆盖默认命令。
command: bundle exec thin -p 3000
命令也可以是列表,类似于dockerfile:
command: ["bundle", "exec", "thin", "-p", "3000"]
因此,在您的情况下,您首先需要将docker-compose文件更改为以下内容:
version: '3.0'
services:
rasa_core:
image: rasa/rasa_core:latest
ports:
- 5005:5005
volumes:
- ./models/rasa_core:/app/models
- .config:/app/config
command: start --core models -c rest --endpoints config/endpoints.yml -u current/
rasa_nlu:
image: rasa/rasa_nlu:latest-spacy
volumes:
- ./models/rasa_nlu:/app/models
command: start --path
请记住,您在docker-compose文件中放入命令的所有内容都会覆盖CMD
中设置的Dockerfile
,就像传递给{{1}的命令一样}会覆盖它。
此外,请记住,docker run
(或命令,如此处)将附加到图像中设置的CMD
上。因此,在指定命令和入口点时请记住这一点。
我注意到rasa_core image已经有一个ENTRYPOINT
脚本。 Dockerfile
中的配置如下:
entrypoint.sh
所以您对命令的处理是正确的。
但是,我认为您的卷映射也已关闭,这是来自相同的rasa_core Dockerfile
:
ENTRYPOINT ["./entrypoint.sh"]
CMD ["start", "-d", "./dialogue"]
我似乎还需要更新docker-compose文件中的卷(我从VOLUME ["/app/model", "/app/config", "/app/project"]
映射中删除了s
)
/app/models
最后,请检查是否将正确的目录映射到version: '3.0'
services:
rasa_core:
image: rasa/rasa_core:latest
ports:
- 5005:5005
volumes:
- ./models/rasa_core:/app/model
- .config:/app/config
command: start --core models -c rest --endpoints config/endpoints.yml -u current/
rasa_nlu:
image: rasa/rasa_nlu:latest-spacy
volumes:
- ./models/rasa_nlu:/app/models
command: start --path
图像。在Dockerfiles of the rasa_nlu project中,似乎没有公开任何名为rasa_nlu
的目录。只是这些:
/app/models