项目作者: hausgold

项目描述 :
mDNS enabled ejabberd image
高级语言: Shell
项目地址: git://github.com/hausgold/docker-ejabberd.git
创建时间: 2017-12-18T10:21:24Z
项目社区:https://github.com/hausgold/docker-ejabberd

开源协议:MIT License

下载


mDNS enabled ejabberd

Continuous Integration
Source Code
Docker Image

This Docker images provides the ejabberd as an development image
with the mDNS/ZeroConf stack on top. So you can enjoy the ejabberd service
while it is accessible by default as ejabberd.local.

Heads up! This image is dedicated to your development environment.
Do not run it on production!

Requirements

  • Host enabled Avahi daemon
  • Host enabled mDNS NSS lookup

Getting starting

You just need to run it like that, to get a working ejabberd service:

  1. $ docker run --rm hausgold/ejabberd

The port 5280 is proxied by haproxy to port 80 to make ejabberd.local
directly accessible. So you can use the HTTP WebSockets
(ejabberd.local/websocket) and Admin panel (ejabberd.local/admin)
directly.

The admin user is admin@MDNS_HOSTNAME, so by default it is
admin@ejabberd.local with the password defaultpw.

docker-compose usage example

  1. services:
  2. ejabberd:
  3. image: hausgold/ejabberd
  4. environment:
  5. # Mind the .local suffix
  6. MDNS_HOSTNAME: ejabberd.test.local

Host configs

Install the nss-mdns package, enable and start the avahi-daemon.service. Then,
edit the file /etc/nsswitch.conf and change the hosts line like this:

  1. hosts: ... mdns4_minimal [NOTFOUND=return] resolve [!UNAVAIL=return] dns ...

Configure a different mDNS hostname

The magic environment variable is MDNS_HOSTNAME. Just pass it like that to
your docker run command:

  1. $ docker run --rm -e MDNS_HOSTNAME=something.else.local hausgold/ejabberd

This will result in something.else.local.

You can also configure multiple aliases (CNAME’s) for your container by
passing the MDNS_CNAMES environment variable. It will register all the comma
separated domains as aliases for the container, next to the regular mDNS
hostname.

  1. $ docker run --rm \
  2. -e MDNS_HOSTNAME=something.else.local \
  3. -e MDNS_CNAMES=nothing.else.local,special.local \
  4. hausgold/ejabberd

This will result in something.else.local, nothing.else.local and
special.local.

Other top level domains

By default .local is the default mDNS top level domain. This images does not
force you to use it. But if you do not use the default .local top level
domain, you need to configure your host avahi to accept it.

Further reading