Search code examples
dockerdocker-composeslackrasa

how to expose rasa server to slack with docker?


is there a way to expose rasa server with docker to slack without using ngrok (am using traefik), and i exposed it to "https://rasa.dev.x-hub.io" so when i try: https://rasa.dev.x-hub.io/webhooks/slack/webhook i get no response. as you can see below, everything is working fine.

rasa server:

(ignore tensorflow error) enter image description here

action server:

enter image description here

duckling:

enter image description here

and the following is the docker-compose file:

version: "2"
services:
  rasa:
    image: registry.gitlab.com/xhub-org/p/xpeers/slackbot:{{img_version}}
    container_name: rasa
    labels:
      - traefik.frontend.rule=Host:rasa.dev.x-hub.io
      - traefik.port={{app_port}}
      - traefik.docker.network=web
      - traefik.enable=true
    restart: always
    networks: ['rasa-network']
    command:
      - run
      - --cors
      - "*"
      - --enable-api
      - --log-file
      - out.log
      - --connector
      - slack
      - --credentials
      - slack_credentials.yml
      - --endpoints
      - endpoints.yml
      - -m
      - /models
    depends_on:
      - action_server

  action_server:  
    image: registry.gitlab.com/xhub-org/p/xpeers/slackbot:{{img_version}}
    container_name: rasa_action_1
    networks: ['rasa-network']
    command :
      - run
      - actions

  duckling:
    image: rasa/duckling:latest
    networks: ['rasa-network']
    ports:
      - "8005:8005"

networks: {rasa-network: {}}

am also using Docker Container Registry integrated into GitLab, every project can have its own space to store its Docker images.

Any help please !


Solution

  • solved my problem by adding :

    networks:
      - web
      - rasa-network
    

    and :

    networks:
      rasa-network:
      web:
        external: true
    

    Full update:

    version: "2"
    services:
      rasa:
        image: registry.gitlab.com/xhub-org/p/xpeers/slackbot:{{img_version}}
        container_name: rasa
        labels:
          - traefik.frontend.rule=Host:rasa.dev.x-hub.io
          - traefik.port={{services.rasa.app_port}}
          - traefik.docker.network=web
          - traefik.enable=true
        restart: always
        networks:
          - web
          - rasa-network
        command:
          - run
          - --cors
          - "*"
          - --enable-api
          - --log-file
          - out.log
          - --connector
          - slack
          - --credentials
          - slack_credentials.yml
          - --endpoints
          - endpoints.yml
          - -m
          - /models
        ports:
          - "5005:5005"
        depends_on:
          - action_server
    
      action_server:  
        image: registry.gitlab.com/xhub-org/p/xpeers/slackbot:{{img_version}}
        container_name: rasa_action_1
        networks:
          - rasa-network
        command :
          - run
          - actions
        ports:
          - "5055:5055"
    
      duckling:
        image: rasa/duckling:latest
        networks: ['rasa-network']
        ports:
          - "8005:8005"
    
    networks:
      rasa-network:
      web:
        external: true