diff options
author | Philip Kuryloski <kuryloskip@vmware.com> | 2021-02-23 12:40:55 +0100 |
---|---|---|
committer | Philip Kuryloski <kuryloskip@vmware.com> | 2021-02-23 12:40:55 +0100 |
commit | e76f0e0bb4a87e8c6def60b19f8eec54327ac833 (patch) | |
tree | 9e74253d724c8cfa778db838da3b99a0907f4510 | |
parent | 7c63b8e4fb1e90f6e3991958824f9f90f1c1dd50 (diff) | |
download | rabbitmq-server-git-rabbitmq-server-2837.tar.gz |
Fix the docker image for use with uncompressed pluginsrabbitmq-server-2837
Historically the docker image build extracts the rabbitmqadmin cli from the
management .ez. This step is now conditional.
-rw-r--r-- | packaging/docker-image/Dockerfile | 34 |
1 files changed, 20 insertions, 14 deletions
diff --git a/packaging/docker-image/Dockerfile b/packaging/docker-image/Dockerfile index e3b2b1659c..932b3cf86d 100644 --- a/packaging/docker-image/Dockerfile +++ b/packaging/docker-image/Dockerfile @@ -275,21 +275,27 @@ RUN rabbitmq-plugins enable --offline rabbitmq_management && \ rabbitmq-plugins is_enabled rabbitmq_management --offline # extract "rabbitmqadmin" from inside the "rabbitmq_management-X.Y.Z.ez" plugin zipfile # see https://github.com/docker-library/rabbitmq/issues/207 +# RabbitMQ 3.9 onwards uses uncompressed plugins by default, in which case extraction is +# unnecesary 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; \ + if [ -s /plugins/rabbitmq_management-*.ez ]; then \ + 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; \ + else \ + cp /plugins/rabbitmq_management-*/priv/www/cli/rabbitmqadmin /usr/local/bin/rabbitmqadmin; \ + fi; \ [ -s /usr/local/bin/rabbitmqadmin ]; \ chmod +x /usr/local/bin/rabbitmqadmin; \ apt-get update; apt-get install -y --no-install-recommends python3; rm -rf /var/lib/apt/lists/*; \ |