Skip to content

Commit 8d62ca7

Browse files
committed
Switch to consuming upstream release artifacts from GitHub
1 parent b3f8989 commit 8d62ca7

File tree

3 files changed

+71
-32
lines changed

3 files changed

+71
-32
lines changed

3.6/alpine/Dockerfile

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -33,28 +33,28 @@ ENV RABBITMQ_LOGS=- RABBITMQ_SASL_LOGS=-
3333
ENV RABBITMQ_HOME /opt/rabbitmq
3434
ENV PATH $RABBITMQ_HOME/sbin:$PATH
3535

36-
# https://www.rabbitmq.com/install-generic-unix.html
37-
ENV GPG_KEY 0A9AF2115F4687BD29803A206B73A36E6026DFCA
36+
# gpg: key 6026DFCA: public key "RabbitMQ Release Signing Key <info@rabbitmq.com>" imported
37+
ENV RABBITMQ_GPG_KEY 0A9AF2115F4687BD29803A206B73A36E6026DFCA
3838

3939
ENV RABBITMQ_VERSION 3.6.12
40+
ENV RABBITMQ_GITHUB_TAG rabbitmq_v3_6_12
4041

4142
RUN set -ex; \
4243
\
4344
apk add --no-cache --virtual .build-deps \
4445
ca-certificates \
4546
gnupg \
4647
libressl \
47-
tar \
4848
xz \
4949
; \
5050
\
51-
wget -O rabbitmq-server.tar.xz "https://www.rabbitmq.com/releases/rabbitmq-server/v${RABBITMQ_VERSION}/rabbitmq-server-generic-unix-${RABBITMQ_VERSION}.tar.xz"; \
52-
wget -O rabbitmq-server.tar.xz.asc "https://www.rabbitmq.com/releases/rabbitmq-server/v${RABBITMQ_VERSION}/rabbitmq-server-generic-unix-${RABBITMQ_VERSION}.tar.xz.asc"; \
51+
wget -O rabbitmq-server.tar.xz.asc "https://github.com/rabbitmq/rabbitmq-server/releases/download/$RABBITMQ_GITHUB_TAG/rabbitmq-server-generic-unix-${RABBITMQ_VERSION}.tar.xz.asc"; \
52+
wget -O rabbitmq-server.tar.xz "https://github.com/rabbitmq/rabbitmq-server/releases/download/$RABBITMQ_GITHUB_TAG/rabbitmq-server-generic-unix-${RABBITMQ_VERSION}.tar.xz"; \
5353
\
5454
export GNUPGHOME="$(mktemp -d)"; \
55-
gpg --keyserver ha.pool.sks-keyservers.net --recv-keys "$GPG_KEY"; \
55+
gpg --keyserver ha.pool.sks-keyservers.net --recv-keys "$RABBITMQ_GPG_KEY"; \
5656
gpg --batch --verify rabbitmq-server.tar.xz.asc rabbitmq-server.tar.xz; \
57-
rm -rf "$GNUPGHOME" rabbitmq-server.tar.xz.asc; \
57+
rm -rf "$GNUPGHOME"; \
5858
\
5959
mkdir -p "$RABBITMQ_HOME"; \
6060
tar \
@@ -64,7 +64,7 @@ RUN set -ex; \
6464
--directory "$RABBITMQ_HOME" \
6565
--strip-components 1 \
6666
; \
67-
rm rabbitmq-server.tar.xz; \
67+
rm -f rabbitmq-server.tar.xz*; \
6868
\
6969
# update SYS_PREFIX (first making sure it's set to what we expect it to be)
7070
grep -qE '^SYS_PREFIX=\$\{RABBITMQ_HOME\}$' "$RABBITMQ_HOME/sbin/rabbitmq-defaults"; \

3.6/debian/Dockerfile

Lines changed: 27 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -54,26 +54,36 @@ RUN set -ex; \
5454
ENV RABBITMQ_LOGS=- RABBITMQ_SASL_LOGS=-
5555
# https://github.com/rabbitmq/rabbitmq-server/commit/53af45bf9a162dec849407d114041aad3d84feaf
5656

57-
# http://www.rabbitmq.com/install-debian.html
58-
# "Please note that the word testing in this line refers to the state of our release of RabbitMQ, not any particular Debian distribution."
59-
RUN set -ex; \
60-
key='0A9AF2115F4687BD29803A206B73A36E6026DFCA'; \
61-
export GNUPGHOME="$(mktemp -d)"; \
62-
gpg --keyserver ha.pool.sks-keyservers.net --recv-keys "$key"; \
63-
gpg --export "$key" > /etc/apt/trusted.gpg.d/rabbitmq.gpg; \
64-
rm -rf "$GNUPGHOME"; \
65-
apt-key list
66-
RUN echo 'deb http://www.rabbitmq.com/debian testing main' > /etc/apt/sources.list.d/rabbitmq.list
57+
# /usr/sbin/rabbitmq-server has some irritating behavior, and only exists to "su - rabbitmq /usr/lib/rabbitmq/bin/rabbitmq-server ..."
58+
ENV PATH /usr/lib/rabbitmq/bin:$PATH
59+
60+
# gpg: key 6026DFCA: public key "RabbitMQ Release Signing Key <[email protected]>" imported
61+
ENV RABBITMQ_GPG_KEY 0A9AF2115F4687BD29803A206B73A36E6026DFCA
6762

6863
ENV RABBITMQ_VERSION 3.6.12
64+
ENV RABBITMQ_GITHUB_TAG rabbitmq_v3_6_12
6965
ENV RABBITMQ_DEBIAN_VERSION 3.6.12-1
7066

71-
RUN apt-get update && apt-get install -y --no-install-recommends \
72-
rabbitmq-server=$RABBITMQ_DEBIAN_VERSION \
73-
&& rm -rf /var/lib/apt/lists/*
74-
75-
# /usr/sbin/rabbitmq-server has some irritating behavior, and only exists to "su - rabbitmq /usr/lib/rabbitmq/bin/rabbitmq-server ..."
76-
ENV PATH /usr/lib/rabbitmq/bin:$PATH
67+
RUN set -ex; \
68+
\
69+
apt-get update; \
70+
apt-get install -y --no-install-recommends ca-certificates wget; \
71+
\
72+
wget -O rabbitmq-server.deb.asc "https://github.com/rabbitmq/rabbitmq-server/releases/download/$RABBITMQ_GITHUB_TAG/rabbitmq-server_${RABBITMQ_DEBIAN_VERSION}_all.deb.asc"; \
73+
wget -O rabbitmq-server.deb "https://github.com/rabbitmq/rabbitmq-server/releases/download/$RABBITMQ_GITHUB_TAG/rabbitmq-server_${RABBITMQ_DEBIAN_VERSION}_all.deb"; \
74+
\
75+
apt-get purge -y --auto-remove ca-certificates wget; \
76+
\
77+
export GNUPGHOME="$(mktemp -d)"; \
78+
gpg --keyserver ha.pool.sks-keyservers.net --recv-keys "$RABBITMQ_GPG_KEY"; \
79+
gpg --batch --verify rabbitmq-server.deb.asc rabbitmq-server.deb; \
80+
rm -rf "$GNUPGHOME"; \
81+
\
82+
apt install -y --no-install-recommends ./rabbitmq-server.deb; \
83+
dpkg -l | grep rabbitmq-server; \
84+
rm -f rabbitmq-server.deb*; \
85+
\
86+
rm -rf /var/lib/apt/lists/*
7787

7888
# set home so that any `--user` knows where to put the erlang cookie
7989
ENV HOME /var/lib/rabbitmq
@@ -86,7 +96,7 @@ VOLUME /var/lib/rabbitmq
8696
# add a symlink to the .erlang.cookie in /root so we can "docker exec rabbitmqctl ..." without gosu
8797
RUN ln -sf /var/lib/rabbitmq/.erlang.cookie /root/
8898

89-
RUN ln -sf /usr/lib/rabbitmq/lib/rabbitmq_server-$RABBITMQ_VERSION/plugins /plugins
99+
RUN ln -sf "/usr/lib/rabbitmq/lib/rabbitmq_server-$RABBITMQ_VERSION/plugins" /plugins
90100

91101
COPY docker-entrypoint.sh /usr/local/bin/
92102
RUN ln -s usr/local/bin/docker-entrypoint.sh / # backwards compat

update.sh

Lines changed: 36 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -11,22 +11,51 @@ versions=( "${versions[@]%/}" )
1111

1212
travisEnv=
1313
for version in "${versions[@]}"; do
14-
# TODO figure out what multi-version looks like here? :(
15-
debianVersion="$(curl -sSL 'http://www.rabbitmq.com/debian/dists/testing/main/binary-amd64/Packages' | grep -m1 -A10 '^Package: rabbitmq-server$' | grep -m1 '^Version: ' | cut -d' ' -f2)"
16-
# https://github.com/docker-library/rabbitmq/pull/121#issuecomment-271816323
14+
rcVersion="${version%-rc}"
15+
rcGrepV='-v'
16+
if [ "$rcVersion" != "$version" ]; then
17+
rcGrepV=
18+
fi
19+
rcGrepV+=' -E'
20+
rcGrepExpr='beta|milestone|rc'
21+
22+
githubTag="$(
23+
git ls-remote --tags https://github.com/rabbitmq/rabbitmq-server.git \
24+
"refs/tags/rabbitmq_v${rcVersion//./_}_*" \
25+
"refs/tags/v${rcVersion}.*" \
26+
| cut -d'/' -f3- \
27+
| grep $rcGrepV -- "$rcGrepExpr" \
28+
| sort -V \
29+
| tail -1
30+
)"
1731

18-
rabbitmqVersion="${debianVersion%%-*}"
32+
githubReleaseUrl="https://github.com/rabbitmq/rabbitmq-server/releases/tag/$githubTag"
33+
fullVersion="$(
34+
curl -fsSL "$githubReleaseUrl" \
35+
| grep -o "/rabbitmq-server-generic-unix-${rcVersion}[.].*[.]tar[.]xz" \
36+
| head -1 \
37+
| sed -r "s/^.*(${rcVersion}.*)[.]tar[.]xz/\1/"
38+
)"
39+
debianVersion="$(
40+
curl -fsSL "$githubReleaseUrl" \
41+
| grep -o "/rabbitmq-server_${rcVersion}[.].*_all[.]deb" \
42+
| head -1 \
43+
| sed -r "s/^.*(${rcVersion}.*)_all[.]deb/\1/"
44+
)"
1945

20-
if [[ "$rabbitmqVersion" != "$version".* ]]; then
21-
echo >&2 "warning: $rabbitmqVersion doesn't appear to be $version -- skipping for now"
46+
if [ -z "$fullVersion" ] || [ -z "$debianVersion" ]; then
47+
echo >&2 "warning: failed to get full ('$fullVersion') or Debian ('$debianVersion') version for '$version'; skipping"
2248
continue
2349
fi
2450

2551
for variant in alpine debian; do
52+
[ -f "$version/$variant/Dockerfile" ] || continue
53+
2654
(
2755
set -x
2856
sed -ri \
29-
-e 's/^(ENV RABBITMQ_VERSION) .*/\1 '"$rabbitmqVersion"'/' \
57+
-e 's/^(ENV RABBITMQ_VERSION) .*/\1 '"$fullVersion"'/' \
58+
-e 's/^(ENV RABBITMQ_GITHUB_TAG) .*/\1 '"$githubTag"'/' \
3059
-e 's/^(ENV RABBITMQ_DEBIAN_VERSION) .*/\1 '"$debianVersion"'/' \
3160
"$version/$variant/Dockerfile"
3261
)

0 commit comments

Comments
 (0)