Search code examples
dockerdocker-composelocalhostwebhooksdirectus

Docker and webhooks?


I'm using Directus with Docker and everything is working fine.

Now I'm trying to use a Webhook but I have the following error : "cURL error 7: Failed to connect to localhost port 3001: Connection refused" when I try to add data in a collection.

When I run docker ps :

CONTAINER ID        IMAGE                         COMMAND                  CREATED             STATUS              PORTS                               NAMES
5e9c2b6c86e8        directus/directus:v8-apache   "directus-entrypoint…"   7 minutes ago       Up 7 minutes        0.0.0.0:8080->80/tcp                fire_directus_1
a3685d0a5f35        mysql:5.7                     "docker-entrypoint.s…"   7 minutes ago       Up 7 minutes        0.0.0.0:3306->3306/tcp, 33060/tcp   fire_mysql_1

My docker-compose :

version: "3"
services:
  mysql:
    image: mysql:5.7
    environment:
      MYSQL_DATABASE: "directus"
      MYSQL_USER: "directus"
      MYSQL_PASSWORD: "directus"
      MYSQL_ROOT_PASSWORD: "directus"
    ports:
      - "3306:3306"

  directus:
    image: directus/directus:v8-apache
    ports:
      - "8080:80"
    environment:
      DIRECTUS_APP_ENV: "production"
      DIRECTUS_AUTH_PUBLICKEY: "some random secret"
      DIRECTUS_AUTH_SECRETKEY: "another random secret"
      DIRECTUS_DATABASE_HOST: "mysql"
      DIRECTUS_DATABASE_PORT: "3306"
      DIRECTUS_DATABASE_NAME: "directus"
      DIRECTUS_DATABASE_USERNAME: "directus"
      DIRECTUS_DATABASE_PASSWORD: "directus"
    volumes:
      - ./data/config:/var/directus/config
      - ./data/uploads:/var/directus/public/uploads
    links:
      - mysql:mysql

My webhook :

enter image description here


Solution

  • it seems you are missing network config in you docker compose. You have to put all containers in the same network. I modified into something like this:

    version: "3"
    services:
      mysql:
        image: mysql:5.7
        environment:
          MYSQL_DATABASE: "directus"
          MYSQL_USER: "directus"
          MYSQL_PASSWORD: "directus"
          MYSQL_ROOT_PASSWORD: "directus"
        ports:
          - "3306:3306"
        networks:
          - netnet
    
      directus:
        image: directus/directus:v8-apache
        ports:
          - "8080:80"
        environment:
          DIRECTUS_APP_ENV: "production"
          DIRECTUS_AUTH_PUBLICKEY: "some random secret"
          DIRECTUS_AUTH_SECRETKEY: "another random secret"
          DIRECTUS_DATABASE_HOST: "mysql"
          DIRECTUS_DATABASE_PORT: "3306"
          DIRECTUS_DATABASE_NAME: "directus"
          DIRECTUS_DATABASE_USERNAME: "directus"
          DIRECTUS_DATABASE_PASSWORD: "directus"
        volumes:
          - ./data/config:/var/directus/config
          - ./data/uploads:/var/directus/public/uploads
        links:
          - mysql:mysql
        networks:
          - netnet
    
    networks:
     netnet: