summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGabriele Santomaggio <G.santomaggio@gmail.com>2021-02-23 13:56:30 +0100
committerGitHub <noreply@github.com>2021-02-23 13:56:30 +0100
commitc30861e334ad8761e74cd292e6aa0f6b7d8479d5 (patch)
tree9e74253d724c8cfa778db838da3b99a0907f4510
parent7c63b8e4fb1e90f6e3991958824f9f90f1c1dd50 (diff)
parente76f0e0bb4a87e8c6def60b19f8eec54327ac833 (diff)
downloadrabbitmq-server-git-c30861e334ad8761e74cd292e6aa0f6b7d8479d5.tar.gz
Merge pull request #2838 from rabbitmq/rabbitmq-server-2837
Fix the docker image for use with uncompressed plugins
-rw-r--r--packaging/docker-image/Dockerfile34
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/*; \