@@ -275,21 +275,27 @@ RUN rabbitmq-plugins enable --offline rabbitmq_management && \
275
275
rabbitmq-plugins is_enabled rabbitmq_management --offline
276
276
# extract "rabbitmqadmin" from inside the "rabbitmq_management-X.Y.Z.ez" plugin zipfile
277
277
# see https://github.com/docker-library/rabbitmq/issues/207
278
+ # RabbitMQ 3.9 onwards uses uncompressed plugins by default, in which case extraction is
279
+ # unnecesary
278
280
RUN set -eux; \
279
- erl -noinput -eval ' \
280
- { ok, AdminBin } = zip:foldl(fun(FileInArchive, GetInfo, GetBin, Acc) -> \
281
- case Acc of \
282
- "" -> \
283
- case lists:suffix("/rabbitmqadmin", FileInArchive) of \
284
- true -> GetBin(); \
285
- false -> Acc \
286
- end; \
287
- _ -> Acc \
288
- end \
289
- end, "", init:get_plain_arguments()), \
290
- io:format("~s", [ AdminBin ]), \
291
- init:stop(). \
292
- ' -- /plugins/rabbitmq_management-*.ez > /usr/local/bin/rabbitmqadmin; \
281
+ if [ -s /plugins/rabbitmq_management-*.ez ]; then \
282
+ erl -noinput -eval ' \
283
+ { ok, AdminBin } = zip:foldl(fun(FileInArchive, GetInfo, GetBin, Acc) -> \
284
+ case Acc of \
285
+ "" -> \
286
+ case lists:suffix("/rabbitmqadmin", FileInArchive) of \
287
+ true -> GetBin(); \
288
+ false -> Acc \
289
+ end; \
290
+ _ -> Acc \
291
+ end \
292
+ end, "", init:get_plain_arguments()), \
293
+ io:format("~s", [ AdminBin ]), \
294
+ init:stop(). \
295
+ ' -- /plugins/rabbitmq_management-*.ez > /usr/local/bin/rabbitmqadmin; \
296
+ else \
297
+ cp /plugins/rabbitmq_management-*/priv/www/cli/rabbitmqadmin /usr/local/bin/rabbitmqadmin; \
298
+ fi; \
293
299
[ -s /usr/local/bin/rabbitmqadmin ]; \
294
300
chmod +x /usr/local/bin/rabbitmqadmin; \
295
301
apt-get update; apt-get install -y --no-install-recommends python3; rm -rf /var/lib/apt/lists/*; \
0 commit comments