diff --git a/.travis.yml b/.travis.yml index 50142fbe..e5ae44b6 100644 --- a/.travis.yml +++ b/.travis.yml @@ -10,13 +10,13 @@ install: before_script: - env | sort - - cd "$VERSION" - - image="rabbitmq:$VERSION-$VARIANT" + - cd "$VERSION/$VARIANT" + - image="$(awk 'toupper($1) == "FROM" { print $2; exit }' management/Dockerfile)" script: - - travis_retry docker build -t "$image" "$VARIANT" + - travis_retry docker build -t "$image" . - ~/official-images/test/run.sh "$image" - - travis_retry docker build -t "${image}-management" "$VARIANT/management" + - travis_retry docker build -t "${image}-management" management - ~/official-images/test/run.sh "${image}-management" after_script: diff --git a/3.6/alpine/management/Dockerfile b/3.6/alpine/management/Dockerfile index 9afa9f16..578f07c0 100644 --- a/3.6/alpine/management/Dockerfile +++ b/3.6/alpine/management/Dockerfile @@ -1,5 +1,27 @@ -FROM rabbitmq:alpine +FROM rabbitmq:3.6-alpine RUN rabbitmq-plugins enable --offline rabbitmq_management +# extract "rabbitmqadmin" from inside the "rabbitmq_management-X.Y.Z.ez" plugin zipfile +# see https://github.com/docker-library/rabbitmq/issues/207 +RUN set -eux; \ + erl -noinput -eval ' \ + { ok, AdminBin } = zip:foldl(fun(FileInArchive, GetInfo, GetBin, Acc) -> \ + case Acc of \ + "" -> \ + case lists:suffix("/rabbitmqadmin", FileInArchive) of \ + true -> GetBin(); \ + false -> Acc \ + end; \ + _ -> Acc \ + end \ + end, "", init:get_plain_arguments()), \ + io:format("~s", [ AdminBin ]), \ + init:stop(). \ + ' -- /plugins/rabbitmq_management-*.ez > /usr/local/bin/rabbitmqadmin; \ + [ -s /usr/local/bin/rabbitmqadmin ]; \ + chmod +x /usr/local/bin/rabbitmqadmin; \ + apk add --no-cache python; \ + rabbitmqadmin --version + EXPOSE 15671 15672 diff --git a/3.6/debian/management/Dockerfile b/3.6/debian/management/Dockerfile index 48727d2d..dcb3d0a8 100644 --- a/3.6/debian/management/Dockerfile +++ b/3.6/debian/management/Dockerfile @@ -1,5 +1,29 @@ -FROM rabbitmq +FROM rabbitmq:3.6 RUN rabbitmq-plugins enable --offline rabbitmq_management +# extract "rabbitmqadmin" from inside the "rabbitmq_management-X.Y.Z.ez" plugin zipfile +# see https://github.com/docker-library/rabbitmq/issues/207 +RUN set -eux; \ + erl -noinput -eval ' \ + { ok, AdminBin } = zip:foldl(fun(FileInArchive, GetInfo, GetBin, Acc) -> \ + case Acc of \ + "" -> \ + case lists:suffix("/rabbitmqadmin", FileInArchive) of \ + true -> GetBin(); \ + false -> Acc \ + end; \ + _ -> Acc \ + end \ + end, "", init:get_plain_arguments()), \ + io:format("~s", [ AdminBin ]), \ + init:stop(). \ + ' -- /plugins/rabbitmq_management-*.ez > /usr/local/bin/rabbitmqadmin; \ + [ -s /usr/local/bin/rabbitmqadmin ]; \ + chmod +x /usr/local/bin/rabbitmqadmin; \ + apt-get update; \ + apt-get install -y --no-install-recommends python; \ + rm -rf /var/lib/apt/lists/*; \ + rabbitmqadmin --version + EXPOSE 15671 15672