Skip to content

Instantly share code, notes, and snippets.

@SeppPenner
Last active April 9, 2021 10:05
Show Gist options
  • Star 2 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save SeppPenner/08ef2a0593e30e0091351a7cb7932df4 to your computer and use it in GitHub Desktop.
Save SeppPenner/08ef2a0593e30e0091351a7cb7932df4 to your computer and use it in GitHub Desktop.
Dockerfile for VerneMQ setup on Raspberry Pi including bridging to another broker

How to build the system using Docker

  1. Build the container.
docker build . -f Dockerfile -t vernemq
  1. Run the container.
docker run -d \
--restart always \
--name vernemq \
-p 1883:1883 \
vernemq
FROM armhf/debian:jessie
RUN apt-get update && apt-get install -y \
libssl-dev \
logrotate \
sudo \
curl \
jq \
&& rm -rf /var/lib/apt/lists/*
ENV VERNEMQ_VERSION 1.3.1
# Defaults
ENV DOCKER_VERNEMQ_KUBERNETES_NAMESPACE default
ENV DOCKER_VERNEMQ_KUBERNETES_APP_LABEL vernemq
ENV DOCKER_VERNEMQ_LOG__CONSOLE console
ADD https://bintray.com/artifact/download/erlio/vernemq/deb/jessie/vernemq_$VERNEMQ_VERSION-1_amd64.deb /tmp/vernemq.deb
RUN dpkg -i /tmp/vernemq.deb
RUN rm /tmp/vernemq.deb
ADD files/vm.args /etc/vernemq/vm.args
ADD bin/vernemq.sh /usr/sbin/start_vernemq
ADD bin/rand_cluster_node.escript /var/lib/vernemq/rand_cluster_node.escript
COPY vernemq.conf /etc/vernemq/vernemq.conf
# MQTT
EXPOSE 1883
# MQTT/SSL
EXPOSE 8883
# MQTT WebSockets
EXPOSE 8080
# VerneMQ Message Distribution
EXPOSE 44053
# EPMD - Erlang Port Mapper Daemon
EXPOSE 4369
# Specific Distributed Erlang Port Range
EXPOSE 9100 9101 9102 9103 9104 9105 9106 9107 9108 9109
# Prometheus Metrics
EXPOSE 8888
VOLUME ["/var/log/vernemq", "/var/lib/vernemq", "/etc/vernemq"]
CMD ["start_vernemq"]
Err http://security.debian.org jessie/updates InRelease
Err http://security.debian.org jessie/updates Release.gpg
Unable to connect to security.debian.org:http: [IP: 212.211.132.250 80]
allow_anonymous = on
plugins.vmq_bridge = on
vmq_bridge.tcp.br0 = 192.168.1.12:1883
vmq_bridge.tcp.br0.client_id = BridgeBroker
vmq_bridge.tcp.br0.restart_timeout = 10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment