diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..3683e58 --- /dev/null +++ b/.gitignore @@ -0,0 +1,66 @@ +*.py[cod] + +# C extensions +*.so + +# Packages +*.egg +*.egg-info +dist +build +.eggs +eggs +parts +bin +var +sdist +develop-eggs +.installed.cfg +lib +lib64 + +# Installer logs +pip-log.txt + +# Unit test / coverage reports +.coverage +cover +.tox +nosetests.xml +.testrepository +.venv + +# Translations +*.mo + +# Mr Developer +.mr.developer.cfg +.project +.pydevproject + +# Complexity +output/*.html +output/*/index.html + +# Sphinx +doc/build + +# oslo-config-generator +etc/*.sample + +# pbr generates these +AUTHORS +ChangeLog + +# Editors +*~ +.*.swp +.*sw? + +# Vagrant +.vagrant +vagrant/Vagrantfile.custom +vagrant/vagrantkey* + +# generated openrc +openrc diff --git a/docker/rabbitmq/Dockerfile.j2 b/docker/rabbitmq/Dockerfile.j2 new file mode 100644 index 0000000..907ce08 --- /dev/null +++ b/docker/rabbitmq/Dockerfile.j2 @@ -0,0 +1,22 @@ +FROM {{ namespace }}/base-tools:{{ tag }} +MAINTAINER {{ maintainer }} + +RUN apt-get install -y --no-install-recommends \ + rabbitmq-server \ + && apt-get clean + +RUN rm -rf /var/lib/rabbitmq/* + +COPY rabbitmq.config /etc/rabbitmq/ +COPY start.sh /usr/local/bin/start.sh +COPY rabbitmq_sudoers /etc/sudoers.d/rabbitmq_sudoers +RUN chmod 755 /usr/local/bin/start.sh \ + && chmod 750 /etc/sudoers.d \ + && chmod 440 /etc/sudoers.d/rabbitmq_sudoers \ + && usermod -a -G microservices rabbitmq + +ENV RABBITMQ_CLUSTER_COOKIE "password" + +USER rabbitmq + +CMD ["start.sh"] diff --git a/docker/rabbitmq/rabbitmq.config b/docker/rabbitmq/rabbitmq.config new file mode 100644 index 0000000..c9d2228 --- /dev/null +++ b/docker/rabbitmq/rabbitmq.config @@ -0,0 +1,11 @@ +[ + {rabbit, [ + {tcp_listeners, [ + {"IPADDR", 5672} + ]}, + {default_user, <<"rabbitmq">>}, + {default_pass, <<"RABBITMQ_CLUSTER_COOKIE">>}, + {cluster_partition_handling, autoheal} + ]} +]. +% EOF diff --git a/docker/rabbitmq/rabbitmq_sudoers b/docker/rabbitmq/rabbitmq_sudoers new file mode 100644 index 0000000..0891538 --- /dev/null +++ b/docker/rabbitmq/rabbitmq_sudoers @@ -0,0 +1 @@ +%microservices ALL=(root) NOPASSWD: /usr/bin/chown -R rabbitmq\: /var/lib/rabbitmq, /bin/chown -R rabbitmq\: /var/lib/rabbitmq, /bin/chown -R rabbitmq\: /etc/rabbitmq diff --git a/docker/rabbitmq/start.sh b/docker/rabbitmq/start.sh new file mode 100644 index 0000000..f234ebd --- /dev/null +++ b/docker/rabbitmq/start.sh @@ -0,0 +1,15 @@ +#!/bin/bash + +# bootstrap +sudo chown -R rabbitmq: /var/lib/rabbitmq +sudo chown -R rabbitmq: /etc/rabbitmq +echo "${RABBITMQ_CLUSTER_COOKIE}" > /var/lib/rabbitmq/.erlang.cookie +chmod 400 /var/lib/rabbitmq/.erlang.cookie + +# delme in future +sed -i "s/IPADDR_COMMAS/`hostname -i | sed 's/\./,/g'`/g" /etc/rabbitmq/rabbitmq.config +sed -i "s/IPADDR/`hostname -i`/g" /etc/rabbitmq/rabbitmq.config +sed -i "s/RABBITMQ_CLUSTER_COOKIE/$RABBITMQ_CLUSTER_COOKIE/g" /etc/rabbitmq/rabbitmq.config + +# run daemon +rabbitmq-server diff --git a/tools/run-check-docker-syntax.sh b/tools/run-check-docker-syntax.sh new file mode 100755 index 0000000..82d609e --- /dev/null +++ b/tools/run-check-docker-syntax.sh @@ -0,0 +1,10 @@ +#!/bin/bash + +### Temp docker syntax checker script. Doesnt really check something... +set -e +for file in $(find . -name 'Dockerfile.j2') +do + fgrep -q FROM $file + fgrep -q MAINTAINER $file + fgrep -q RUN $file +done diff --git a/tox.ini b/tox.ini new file mode 100644 index 0000000..4e6bef6 --- /dev/null +++ b/tox.ini @@ -0,0 +1,17 @@ +[tox] +minversion = 1.6 +envlist = py34,py27,pypy,pep8 +skipsdist = True + +[testenv:linters] +commands = + {toxinidir}/tools/run-check-docker-syntax.sh + +[testenv:pep8] +commands = + {toxinidir}/tools/run-check-docker-syntax.sh + +[testenv:bashate] +commands = + {toxinidir}/tools/run-check-docker-syntax.sh +