docker - Ejabberd + Docker |节点名称不匹配 : I'm [ejaberd@. ..],数据库归 [ejabberd@...]

标签 docker docker-compose ejabberd

我正在尝试通过 docker 设置 ejabberd 服务器,以便我可以使用 pidgin 与我的队友聊天。

我有以下 docker compose 文件:

version: "2"

services:
  ejabberd:
    image: rroemhild/ejabberd
    ports:
      - "5222:5222"
      - "5269:5269"
      - "5280:5280"
    environment:
      - ERLANG_NODE=ejabberd
      - XMPP_DOMAIN=localhost
      - EJABBERD_ADMINS=admin
      - EJABBERD_USERS=admin:pass1 user1:pass2 user2:pass3
    volumes:
      - ssl:/opt/ejabberd/ssl
      - backup:/opt/ejabberd/backup
      - upload:/opt/ejabberd/upload
      - database:/opt/ejabberd/database
volumes:
  ssl:
  backup:
  upload:
  database:

每当我尝试启动 ejabberd 时,都会收到此错误:

ejabberd_1 | 05:52:58.912 [critical] Node name mismatch: I'm [ejabberd@986834bd1bc8], the database is owned by [ejabberd@319f85780c99] ejabberd_1 | 05:52:58.912 [critical] Either set ERLANG_NODE in ejabberdctl.cfg or change node name in Mnesia

我有什么遗漏吗?

最佳答案

由于 Docker 初始化时您的主机名正在更改,因此您需要覆盖/etc/ejabberd/ejabberdctl.cfg 中的 ERLANG_NODE 设置。例如:

ERLANG_NODE=ejabberd@mypermanenthostname

如果其他人尝试迁移 ejabberd 实例,他们可以执行类似的操作,但他们真正想要的说明是:

https://docs.ejabberd.im/admin/guide/managing/#ad-hoc-commands

关于docker - Ejabberd + Docker |节点名称不匹配 : I'm [ejaberd@. ..],数据库归 [ejabberd@...],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52143978/

相关文章:

api - 试图找到 docker-compose 远程 API

ruby-on-rails - ejabberd:管理添加/删除 friend

tcp - ejabberd 与 Redis 配对时 Crash 是什么原因?

python - 连接 Ejabberd 和 Mysql

java - 如何从 java 中运行 docker 容器

docker - 使用 fluentd 监控 Redis

docker - Traefik http使用docker标签重定向到https

docker - 如何在docker-compose入口点中转义'

docker - 容器如何枚举网络上可用的主机?

docker - 使用 Traefik 2 作为 MariaDB (Docker) 的 TCP 代理