diff --git a/docker/common/rabbitmq/config-rabbit.sh b/docker/common/rabbitmq/config-rabbit.sh
index 750b253a47..29cd1bb06d 100644
--- a/docker/common/rabbitmq/config-rabbit.sh
+++ b/docker/common/rabbitmq/config-rabbit.sh
@@ -44,7 +44,8 @@ function configure_rabbit {
     elif [ "$RABBITMQ_SERVICE_HOST" ]; then
         # work around:
         # https://bugs.launchpad.net/ubuntu/+source/rabbitmq-server/+bug/653405
-        echo "${RABBITMQ_SERVICE_HOST} `/usr/bin/hostname -s`" > /etc/hosts
+        HOSTNAME=`/usr/bin/hostname -s 2> /dev/null || /bin/hostname 2> /dev/null`
+        echo "${RABBITMQ_SERVICE_HOST} ${HOSTNAME}" > /etc/hosts
     else
         echo "You need RABBITMQ_SERVICE_HOST or RABBITMQ_CLUSTER_NODES & " \
             " RABBITMQ_CLUSTER_COOKIES variables"
diff --git a/docker/ubuntu/binary/rabbitmq/Dockerfile b/docker/ubuntu/binary/rabbitmq/Dockerfile
new file mode 100644
index 0000000000..4ade92668b
--- /dev/null
+++ b/docker/ubuntu/binary/rabbitmq/Dockerfile
@@ -0,0 +1,14 @@
+FROM %%KOLLA_NAMESPACE%%/%%KOLLA_PREFIX%%base:%%KOLLA_TAG%%
+MAINTAINER Kolla Project (https://launchpad.net/kolla)
+
+RUN apt-get install -y --no-install-recommends \
+        hostname \
+        rabbitmq-server \
+    && apt-get clean \
+    && /usr/lib/rabbitmq/bin/rabbitmq-plugins --offline enable rabbitmq_management
+
+COPY rabbitmq.config rabbitmq-env.conf /etc/rabbitmq/
+COPY config-rabbit.sh config-external.sh config-internal.sh /opt/kolla/
+COPY start.sh /start.sh
+
+CMD ["/start.sh"]
diff --git a/docker/ubuntu/binary/rabbitmq/build b/docker/ubuntu/binary/rabbitmq/build
new file mode 120000
index 0000000000..8d652f7ee2
--- /dev/null
+++ b/docker/ubuntu/binary/rabbitmq/build
@@ -0,0 +1 @@
+../../../../tools/build-docker-image
\ No newline at end of file
diff --git a/docker/ubuntu/binary/rabbitmq/config-external.sh b/docker/ubuntu/binary/rabbitmq/config-external.sh
new file mode 120000
index 0000000000..e02e664c8e
--- /dev/null
+++ b/docker/ubuntu/binary/rabbitmq/config-external.sh
@@ -0,0 +1 @@
+../../../common/rabbitmq/config-external.sh
\ No newline at end of file
diff --git a/docker/ubuntu/binary/rabbitmq/config-internal.sh b/docker/ubuntu/binary/rabbitmq/config-internal.sh
new file mode 120000
index 0000000000..73a13c7726
--- /dev/null
+++ b/docker/ubuntu/binary/rabbitmq/config-internal.sh
@@ -0,0 +1 @@
+../../../common/rabbitmq/config-internal.sh
\ No newline at end of file
diff --git a/docker/ubuntu/binary/rabbitmq/config-rabbit.sh b/docker/ubuntu/binary/rabbitmq/config-rabbit.sh
new file mode 120000
index 0000000000..6feee2aba4
--- /dev/null
+++ b/docker/ubuntu/binary/rabbitmq/config-rabbit.sh
@@ -0,0 +1 @@
+../../../common/rabbitmq/config-rabbit.sh
\ No newline at end of file
diff --git a/docker/ubuntu/binary/rabbitmq/rabbitmq-env.conf b/docker/ubuntu/binary/rabbitmq/rabbitmq-env.conf
new file mode 120000
index 0000000000..af9f8525e9
--- /dev/null
+++ b/docker/ubuntu/binary/rabbitmq/rabbitmq-env.conf
@@ -0,0 +1 @@
+../../../common/rabbitmq/rabbitmq-env.conf
\ No newline at end of file
diff --git a/docker/ubuntu/binary/rabbitmq/rabbitmq.config b/docker/ubuntu/binary/rabbitmq/rabbitmq.config
new file mode 120000
index 0000000000..cfb088507e
--- /dev/null
+++ b/docker/ubuntu/binary/rabbitmq/rabbitmq.config
@@ -0,0 +1 @@
+../../../common/rabbitmq/rabbitmq.config
\ No newline at end of file
diff --git a/docker/ubuntu/binary/rabbitmq/start.sh b/docker/ubuntu/binary/rabbitmq/start.sh
new file mode 120000
index 0000000000..035f55e267
--- /dev/null
+++ b/docker/ubuntu/binary/rabbitmq/start.sh
@@ -0,0 +1 @@
+../../../common/rabbitmq/start.sh
\ No newline at end of file