docker-vernemq icon indicating copy to clipboard operation
docker-vernemq copied to clipboard

Incompatibility with network_mode: "host"

Open e-g-hategan opened this issue 4 years ago • 0 comments

I'm trying to use network_mode: "host" to be able to cluster together 2 vernemq containers running on different hosts.

If an alternative for clustering 2 vernemq containers running on different hosts exists I'm happy to listen.

$ cat docker-compose.yml
version: '3.6'

services:

  vernemq2:
    container_name: vernemq
    image: vernemq/vernemq:1.10.4.1
    environment:
      - DOCKER_VERNEMQ_ACCEPT_EULA=yes
      - DOCKER_VERNEMQ_USER_ADMIN=${ADMIN_PASSWORD:?Admin password not specified}
      - DOCKER_VERNEMQ_USER_DEVICE=${DEVICE_PASSWORD:?Device password not specified}
      - DOCKER_VERNEMQ_DISTRIBUTED_COOKIE=something_random
      - DOCKER_VERNEMQ_LOG.console.level=debug
      - DOCKER_VERNEMQ_LISTENER.tcp.allowed_protocol_versions=5
      - DOCKER_VERNEMQ_LISTENER.tcp.proxy_protocol=off
      - DOCKER_VERNEMQ_LISTENER.ssl.allowed_protocol_versions=5
      - DOCKER_VERNEMQ_LISTENER.ssl.cafile=/run/secrets/cacerts
      - DOCKER_VERNEMQ_LISTENER.ssl.certfile=/run/secrets/cert
      - DOCKER_VERNEMQ_LISTENER.ssl.keyfile=/run/secrets/key
      - DOCKER_VERNEMQ_LISTENER.ssl.default=${IP_ADDRESS:?IP address not specified}:8883
      - DOCKER_VERNEMQ_LISTENER.ssl.require_certificate=off # set this to 'on' to require client certificates
      - DOCKER_VERNEMQ_LISTENER.ssl.use_identity_as_username=off
      - DOCKER_VERNEMQ_LISTENER.vmq.clustering=${IP_ADDRESS:?IP address not specified}:44053
      - DOCKER_VERNEMQ_ERLANG.distribution.port_range.minimum=6000
      - DOCKER_VERNEMQ_ERLANG.distribution.port_range.maximum=6099
    secrets:
      - source: cacerts
      - source: cert
      - source: key
    ulimits:
      nproc: 65536
      nofile: 65536
    network_mode: "host"

secrets:
  cacerts:
    file: ./cacerts.pem
  cert:
    file: ./cert.pem
  key:
    file: ./key.pem

and I get:

$ docker-compose up
Starting vernemq ... done
Attaching to vernemq
vernemq     | Device "eth0" does not exist.
vernemq     | Password:
vernemq     | Reenter password:
vernemq     | Password:
vernemq     | Reenter password:
vernemq     | 17:31:50.925 [error] Error generating configuration in phase transform_datatypes
vernemq     | 17:31:50.925 [error] Error transforming datatype for: listener.ws.default
vernemq     | 17:31:50.925 [error] ":8080" cannot be converted to a(n) IP
vernemq     | 17:31:50.925 [error] Error transforming datatype for: listener.http.metrics
vernemq     | 17:31:50.925 [error] ":8888" cannot be converted to a(n) IP
vernemq     | 17:31:50.925 [error] Error transforming datatype for: listener.vmq.clustering
vernemq     | 17:31:50.925 [error] ":44053" cannot be converted to a(n) IP
vernemq     | 17:31:50.925 [error] Error transforming datatype for: listener.tcp.default
vernemq     | 17:31:50.926 [error] ":1883" cannot be converted to a(n) IP
vernemq     | configuration error, exit
vernemq     | 17:31:50.925 [error] Error generating configuration in phase transform_datatypes
vernemq     | 17:31:50.925 [error] Error transforming datatype for: listener.ws.default
vernemq     | 17:31:50.925 [error] ":8080" cannot be converted to a(n) IP
vernemq     | 17:31:50.925 [error] Error transforming datatype for: listener.http.metrics
vernemq     | 17:31:50.925 [error] ":8888" cannot be converted to a(n) IP
vernemq     | 17:31:50.925 [error] Error transforming datatype for: listener.vmq.clustering
vernemq     | 17:31:50.925 [error] ":44053" cannot be converted to a(n) IP
vernemq     | 17:31:50.925 [error] Error transforming datatype for: listener.tcp.default
vernemq     | 17:31:50.926 [error] ":1883" cannot be converted to a(n) IP
vernemq exited with code 0

Same docker-compose.yml plus section that exposes ports works fine if I remove the host network_mode and IP_ADDRESS is 0.0.0.0.

$ docker --version Docker version 19.03.13, build 4484c46d9d

$ docker-compose --version docker-compose version 1.27.2, build 18f557f9

e-g-hategan avatar Sep 23 '20 17:09 e-g-hategan