【问题标题】:Deploy Rasa in Docker在 Docker 中部署 Rasa
【发布时间】:2021-07-15 05:07:32
【问题描述】:

我是 Rasa 和 Docker 的新手,我想在 Docker 中部署我的 rasa 项目。我找不到正确的部署流程。我从博客和 docker 视频中了解部署并尝试这样。

第一步:我要创建一个包含项目源和需求的 docker 镜像。

Dockerfile

FROM rasa/rasa  
COPY . /chatbot  
WORKDIR /chatbot  
RUN pip install -r requirements.txt  
USER root  
COPY ./actions /app/actions
USER 1001     

requirements.txt

pyaml  
flask   
requests  
spacy  
rasa-nlu   
rasa-core   
rasa-core-sdk  

第二步:创建 Docker-compose.yml

version: "3.0"  
services:  
  rasa:  
    image: rasa/rasa:2.6.3-full  
    ports:   
      - 5005:5005  
    volumes:   
      - ./:/app  
    command:  
      - run  
      - -m  
      - models   
      - --enable-api  
      - --cors   
      - "*"  
      - --debug   
  action_server:  
    image: rasa/rasa_core_sdk:latest  
    ports:  
      - 5055:5055  
    volumes:  
      - ./actions:/app/actions  
   command:  
     - rasa  
     - run  
     - actions  

谁能告诉我正确的部署流程。

【问题讨论】:

  • 能否请您描述一下您所面临的具体问题?您是否有一些错误消息或预期结果?

标签: docker deployment docker-compose dockerfile rasa


【解决方案1】:

这看起来是使用 docker 部署机器人的正确方法。您面临的问题是什么?

【讨论】:

  • 无法连接动作服务器。我将端点 url 更改为 action_server
【解决方案2】:

在我看来是正确的。我遵循相同的结构,除了 action_server (inside docker-compose.yml) 中的命令。我跳过了命令部分,它工作正常。

动作服务器: 图片:rasa/rasa-sdk:1.10.2 卷: - ./actions:/app/actions 端口: - 5055:5055

在端点 url 中,服务的名称,即“action_server”只会出现

【讨论】:

    【解决方案3】:

    在您的系统上安装了 docker 和 docker-compose。

    在项目的根目录中创建第一个 Dockerfile(只是一个名为“Dockerfile”的新文件)并且应该有这个内容 -

    FROM rasa/rasa:2.8.0
    WORKDIR '/app'
    COPY . /app
    USER root
    # WORKDIR /app
    # COPY . /app
    COPY ./data /app/data
    RUN  rasa train
    VOLUME /app
    VOLUME /app/data
    VOLUME /app/models
    CMD ["run","-m","/app/models","--enable-api","--cors","*","--debug" ,"--endpoints", "endpoints.yml", "--log-file", "out.log", "--debug"]
    

    请注意,您可以在此处更改 rasa 版本。

    在操作文件夹中创建第二个 Dockerfile 并放置此内容 -

    FROM rasa/rasa-sdk:2.8.0
    WORKDIR /app
    COPY requirements.txt requirements.txt
    USER root
    RUN pip install --verbose -r requirements.txt
    EXPOSE 5055
    USER 1001
    

    请注意,您必须将包含您安装和使用的 python 库的 requirements.txt 文件放在操作文件夹中。

    所以,这就是我们需要的所有 dockerfile,现在在根目录中,您可以看到一个名为 endpoints.yml 的文件。在 action_endpoint 中将名称 localhost 更改为 action_server(我们将在 docker-compose 文件中为动作服务器的容器注册此名称),它应该看起来像 -

    action_endpoint:
     url: "http://action_server:5055/webhook"
    

    最后在根目录下创建一个docker-compose.yml文件并放置这些内容-

    version: '3'
    services:
        rasa:
          container_name: "rasa_server"
          user: root
          build: 
            context:  .
          volumes:
          - "./:/app"
          ports: 
            - "5005:5005"
        action_server:
          container_name: "action_server"
          build: 
            context: actions
          volumes:
            - ./actions:/app/actions
            - ./data:/app/data
          ports:
            - 5055:5055
    

    在这一切之后,你可以运行命令

    docker-compose up --build
    

    学分:https://forum.rasa.com/t/dockerizing-my-rasa-chatbot-application-that-has-botfront/46096/27

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-09-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多