diff --git a/demo/complex/docker-compose.yml b/demo/complex/docker-compose.yml index 9a1408f..f36a4dd 100644 --- a/demo/complex/docker-compose.yml +++ b/demo/complex/docker-compose.yml @@ -197,7 +197,7 @@ services: - 4443:4443 mq: - image: rabbitmq:management + build: ./mq/ environment: - RABBITMQ_NODENAME=docker-rabbit hostname: rabbitmq diff --git a/demo/complex/mq/Dockerfile b/demo/complex/mq/Dockerfile new file mode 100644 index 0000000..1593b80 --- /dev/null +++ b/demo/complex/mq/Dockerfile @@ -0,0 +1,13 @@ +FROM tier/rabbitmq:latest + +COPY container_files/etc-rabbitmq/* /etc/rabbitmq/ +COPY container_files/usr-local-bin/* /usr/local/bin/ + +ENV RABBITMQ_PID_FILE=/var/run/rabbitmq/pid + +# Must be on /var/lib/rabbitmq (this is the same place where queues are defined) +ENV RABBITMQ_INIT_DONE_FILE=/var/lib/rabbitmq/initialization.done + +ENTRYPOINT ["/usr/local/bin/demo-entrypoint.sh"] + +CMD ["rabbitmq-server"] diff --git a/demo/complex/mq/container_files/etc-rabbitmq/rabbitmq.conf b/demo/complex/mq/container_files/etc-rabbitmq/rabbitmq.conf new file mode 100644 index 0000000..4c789ba --- /dev/null +++ b/demo/complex/mq/container_files/etc-rabbitmq/rabbitmq.conf @@ -0,0 +1,2 @@ +# Allow guest access from anywhere (change this in production!) +loopback_users = none diff --git a/demo/complex/mq/container_files/usr-local-bin/demo-entrypoint.sh b/demo/complex/mq/container_files/usr-local-bin/demo-entrypoint.sh new file mode 100755 index 0000000..7355248 --- /dev/null +++ b/demo/complex/mq/container_files/usr-local-bin/demo-entrypoint.sh @@ -0,0 +1,8 @@ +#!/bin/bash + +if [ ! -e $RABBITMQ_INIT_DONE_FILE ]; then + /usr/local/bin/initialize-rabbitmq.sh & +else + echo "RabbitMQ was already initialized" +fi +/usr/local/bin/entrypoint.sh "$@" diff --git a/demo/complex/mq/container_files/usr-local-bin/initialize-rabbitmq.sh b/demo/complex/mq/container_files/usr-local-bin/initialize-rabbitmq.sh new file mode 100755 index 0000000..3660e80 --- /dev/null +++ b/demo/complex/mq/container_files/usr-local-bin/initialize-rabbitmq.sh @@ -0,0 +1,11 @@ +#!/bin/bash + +set -e + +echo "Executing RabbitMQ initialization" +echo "Waiting for the server to start up..." +rabbitmqctl -t 30 wait $RABBITMQ_PID_FILE +echo "OK, creating sampleQueue..." +rabbitmqadmin declare queue name=sampleQueue +echo "Done" +touch $RABBITMQ_INIT_DONE_FILE