Problém:
Při pokusu o spuštění emqx_ctl v dockerized emqx setup pomocí příkazu jako
emqx_docker_status.sh
docker-compose exec emqx ./bin/emqx statusuvidíte error message jako
emqx_node_not_responding.txt
Node 'emqx@node1.emqx.mydomain.com' not responding to pings.
/opt/emqx/bin/emqx: line 41: die: command not foundŘešení
Problém zde je, že emqx_ctl se pokouší připojit k IP adrese pro node1.emqx.mydomain.com, ale ta IP adresa neukazuje na IP adresu pro docker container (možná je to public IP adresa pro váš server?)
Řešení zde je vytvořit network alias v rámci docker/docker-compose, aby Docker DNS system resolved node1.emqx.mydomain.com na internal IP adresu containeru.
Například, v docker-compose, můžete vytvořit váš network pomocí
docker_networks_emqx.yml
networks:
emqx:
driver: bridgea pak konfigurovat alias pro container pomocí
docker_compose_emqx_service.yml
services:
emqx:
image: emqx:4.4.4
environment:
- "EMQX_NAME=emqx"
- "EMQX_HOST=node1.emqx.mydomain.com"
- "EMQX_LOADED_PLUGINS=emqx_recon,emqx_retainer,emqx_management,emqx_dashboard"
ports:
- 18083:18083
- 1883:1883
volumes:
- ./emqx_data:/opt/emqx/data
- ./emqx_log:/opt/emqx/log
networks:
emqx:
aliases:
- "node1.emqx.mydomain.com"Pokud vám tento článek pomohl, zvažte, zda mi nekoupíte kávu nebo nepřispějete přes PayPal na podporu výzkumu a publikování nových článků na TechOverflow