Docker环境下ejabberd执行reload_config无法动态添加vhost求助
Docker中ejabberd/ecs镜像动态添加VHost不生效问题
我在Docker环境使用ejabberd/ecs镜像,需要动态创建VHost,操作步骤如下:
- 通过脚本编辑ejabberd.yml添加vhost条目;
- 执行
docker exec -it ejabberd bin/ejabberdctl reload_config重载配置,按ejabberd官方文档说明,该操作支持添加/移除vhost; - 执行
docker exec -it ejabberd bin/ejabberdctl registered_vhosts查看vhost列表。
但执行后registered_vhosts仅显示修改前的vhost,只有执行docker compose down && docker compose up -d重启容器后,才能看到新增的vhost。已确认ejabberd.yml语法正确,重启时日志能正常初始化所有vhost(包括ACME相关配置),但执行reload_config时日志无任何变更提示。
补充:问题似乎与使用sed编辑文件的方式有关,执行sed -i "/<new-line-tag>/i \ \ - $NEW_DOMAIN" ejabberd.yml后,即便改用vi编辑文件,变更也无法被ejabberd识别。
修改后的ejabberd.yml配置
hosts: - a.chat.preprod.example.app - b.chat.preprod.example.app - c.chat.preprod.example.app - d.chat.preprod.example.app # <new-line-tag>
docker-compose.yml配置
version: '3.7' services: main: image: ejabberd/ecs container_name: ejabberd ports: - "5222:5222" - "5269:5269" - "5280:5280" # ACME Well known path - "5443:5443" volumes: - ./ejabberd.yml:/home/ejabberd/conf/ejabberd.yml - ./database:/home/ejabberd/database
内容的提问来源于stack exchange,提问作者Gabriel Glenn
相关产品推荐
相关产品推荐

