diff options
8 files changed, 42 insertions, 29 deletions
diff --git a/deps/rabbitmq_prometheus/Dockerfile b/deps/rabbitmq_prometheus/Dockerfile index 3452115475..5844b5f603 100644 --- a/deps/rabbitmq_prometheus/Dockerfile +++ b/deps/rabbitmq_prometheus/Dockerfile @@ -276,20 +276,26 @@ 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; \ +        rabbitmqadmin_path="$(find -L /plugins -name rabbitmqadmin -type f)"; \ +        if [ -f "$rabbitmqadmin_path" ]; \ +        then \ +          cp "$rabbitmqadmin_path" /usr/local/bin/rabbitmqadmin; \ +        else \ +          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; \ +        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/*; \ @@ -301,13 +307,20 @@ RUN rabbitmq-plugins enable --offline rabbitmq_top && \      rabbitmq-plugins is_enabled rabbitmq_top --offline  # rabbitmq_prometheus -RUN rm /plugins/prometheus*.ez -COPY plugins/prometheus*.ez /plugins/ -RUN rm /plugins/rabbitmq_prometheus*.ez -COPY plugins/rabbitmq_prometheus*.ez  /plugins/ +# We copy all local plugins to a temporary directory so that +#       we replace only the prometheus & rabbitmq_prometheus plugins in the image. +# If we don't do this, things get very weird with globs, +#       and we either copy the the contents of those directories (e.g. ebin & priv) inside plugins, +#       or we end up with prometheus* & rabbitmq_prometheus directories (I know! 🙄) +# This has been an ongoing issue since 2015, still not solved in 2021: +# https://github.com/moby/moby/issues/15858 +COPY plugins /plugins-tmp +RUN rm -fr /plugins/prometheus* && mv /plugins-tmp/prometheus* /plugins/ +RUN rm -fr /plugins/rabbitmq_prometheus* && mv /plugins-tmp/rabbitmq_prometheus* /plugins/ +RUN rm -fr /plugins-tmp  ARG RABBITMQ_PROMETHEUS_VERSION -RUN chmod --recursive --verbose a+r /plugins/*.ez && \ +RUN chmod --recursive --verbose a+r /plugins/* && \      chown --recursive --verbose rabbitmq:rabbitmq /plugins && \      rabbitmq-plugins enable --offline rabbitmq_prometheus && \      rabbitmq-plugins is_enabled rabbitmq_prometheus --offline && \ diff --git a/deps/rabbitmq_prometheus/Makefile b/deps/rabbitmq_prometheus/Makefile index 178429c7ae..0e32404a60 100644 --- a/deps/rabbitmq_prometheus/Makefile +++ b/deps/rabbitmq_prometheus/Makefile @@ -1,15 +1,15 @@  TODAY := $(shell date -u +'%Y.%m.%d')  # Use the latest alpha RabbitMQ 3.9 release - https://ci.rabbitmq.com/teams/main/pipelines/server-release:v3.9.x/jobs/build-test-package-generic-unix-latest-toolchain -BASED_ON_RABBITMQ_VERSION := 3.9.0-alpha.349 +BASED_ON_RABBITMQ_VERSION := 3.9.0-alpha.465  DOCKER_IMAGE_NAME := pivotalrabbitmq/rabbitmq-prometheus  DOCKER_IMAGE_VERSION := $(BASED_ON_RABBITMQ_VERSION)-$(TODAY)  # RABBITMQ_VERSION is used in rabbitmq-components.mk to set PROJECT_VERSION  RABBITMQ_VERSION ?= $(DOCKER_IMAGE_VERSION)  # This is taken from the CI job above -RABBITMQ_BUILD_NUMBER := 375 +RABBITMQ_BUILD_NUMBER := 499  # make find-latest-otp -OTP_VERSION := 23.0.2 -OTP_SHA256 := 6bab92d1a1b20cc319cd845c23db3611cc99f8c99a610d117578262e3c108af3 +OTP_VERSION := 23.2.2 +OTP_SHA256 := 04994a2dffee0170554797b3d258b4f4727e54c772e721202e9fb22d6827e4de  define PROJECT_ENV  [ diff --git a/deps/rabbitmq_prometheus/docker/docker-compose-dist-tls.yml b/deps/rabbitmq_prometheus/docker/docker-compose-dist-tls.yml index 241de1c919..7aa40e375e 100644 --- a/deps/rabbitmq_prometheus/docker/docker-compose-dist-tls.yml +++ b/deps/rabbitmq_prometheus/docker/docker-compose-dist-tls.yml @@ -13,7 +13,7 @@ volumes:  services:    rmq0-dist-tls: &rabbitmq      # https://hub.docker.com/r/pivotalrabbitmq/rabbitmq-prometheus/tags -    image: pivotalrabbitmq/rabbitmq-prometheus:3.9.0-alpha.349-2020.06.18 +    image: pivotalrabbitmq/rabbitmq-prometheus:3.9.0-alpha.465-2021.01.18      networks:        - "rabbitmq-prometheus"      ports: diff --git a/deps/rabbitmq_prometheus/docker/docker-compose-overview.yml b/deps/rabbitmq_prometheus/docker/docker-compose-overview.yml index 92f039b30a..c7e71e6a79 100644 --- a/deps/rabbitmq_prometheus/docker/docker-compose-overview.yml +++ b/deps/rabbitmq_prometheus/docker/docker-compose-overview.yml @@ -13,7 +13,7 @@ volumes:  services:    rmq0: &rabbitmq      # https://hub.docker.com/r/pivotalrabbitmq/rabbitmq-prometheus/tags -    image: pivotalrabbitmq/rabbitmq-prometheus:3.9.0-alpha.349-2020.06.18 +    image: pivotalrabbitmq/rabbitmq-prometheus:3.9.0-alpha.465-2021.01.18      networks:        - "rabbitmq-prometheus"      ports: diff --git a/deps/rabbitmq_prometheus/docker/docker-compose-qq.yml b/deps/rabbitmq_prometheus/docker/docker-compose-qq.yml index 846fd1ba64..722e1b62bd 100644 --- a/deps/rabbitmq_prometheus/docker/docker-compose-qq.yml +++ b/deps/rabbitmq_prometheus/docker/docker-compose-qq.yml @@ -13,7 +13,7 @@ volumes:  services:    rmq0-qq: &rabbitmq      # https://hub.docker.com/r/pivotalrabbitmq/rabbitmq-prometheus/tags -    image: pivotalrabbitmq/rabbitmq-prometheus:3.9.0-alpha.349-2020.06.18 +    image: pivotalrabbitmq/rabbitmq-prometheus:3.9.0-alpha.465-2021.01.18      networks:        - "rabbitmq-prometheus"      ports: diff --git a/deps/rabbitmq_prometheus/docker/rabbitmq-dist-tls.conf b/deps/rabbitmq_prometheus/docker/rabbitmq-dist-tls.conf index ecc7de7633..94d6aaab01 100644 --- a/deps/rabbitmq_prometheus/docker/rabbitmq-dist-tls.conf +++ b/deps/rabbitmq_prometheus/docker/rabbitmq-dist-tls.conf @@ -15,7 +15,7 @@ cluster_formation.classic_config.nodes.1 = rabbit@rmq0-dist-tls  cluster_formation.classic_config.nodes.2 = rabbit@rmq1-dist-tls  cluster_formation.classic_config.nodes.3 = rabbit@rmq2-dist-tls -management.load_definitions = /etc/rabbitmq/rabbitmq-definitions.json +load_definitions = /etc/rabbitmq/rabbitmq-definitions.json  # background_gc_enabled = true diff --git a/deps/rabbitmq_prometheus/docker/rabbitmq-overview.conf b/deps/rabbitmq_prometheus/docker/rabbitmq-overview.conf index bc157213d3..b276485b27 100644 --- a/deps/rabbitmq_prometheus/docker/rabbitmq-overview.conf +++ b/deps/rabbitmq_prometheus/docker/rabbitmq-overview.conf @@ -14,7 +14,7 @@ cluster_formation.classic_config.nodes.1 = rabbit@rmq0  cluster_formation.classic_config.nodes.2 = rabbit@rmq1  cluster_formation.classic_config.nodes.3 = rabbit@rmq2 -management.load_definitions = /etc/rabbitmq/rabbitmq-definitions.json +load_definitions = /etc/rabbitmq/rabbitmq-definitions.json  # background_gc_enabled = true diff --git a/deps/rabbitmq_prometheus/docker/rabbitmq-qq.conf b/deps/rabbitmq_prometheus/docker/rabbitmq-qq.conf index ac50706dab..a61879342f 100644 --- a/deps/rabbitmq_prometheus/docker/rabbitmq-qq.conf +++ b/deps/rabbitmq_prometheus/docker/rabbitmq-qq.conf @@ -15,7 +15,7 @@ cluster_formation.classic_config.nodes.1 = rabbit@rmq0-qq  cluster_formation.classic_config.nodes.2 = rabbit@rmq1-qq  cluster_formation.classic_config.nodes.3 = rabbit@rmq2-qq -management.load_definitions = /etc/rabbitmq/rabbitmq-definitions.json +load_definitions = /etc/rabbitmq/rabbitmq-definitions.json  # background_gc_enabled = true  | 
