Skip to content

Commit bded33b

Browse files
authored
Merge pull request #137 from infosiftr/alpine
Add Alpine variant
2 parents 9916114 + 370d42f commit bded33b

File tree

9 files changed

+441
-23
lines changed

9 files changed

+441
-23
lines changed

.travis.yml

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,22 @@
11
language: bash
22
services: docker
33

4+
env:
5+
- VARIANT=debian
6+
- VARIANT=alpine
7+
48
install:
59
- git clone https://github.com/docker-library/official-images.git ~/official-images
610

711
before_script:
812
- env | sort
9-
- image='rabbitmq'
13+
- image="rabbitmq:$VARIANT"
1014

1115
script:
12-
- docker build -t "$image" .
16+
- docker build -t "$image" "$VARIANT"
1317
- ~/official-images/test/run.sh "$image"
14-
- docker build -t "$image:management" management
15-
- ~/official-images/test/run.sh "$image:management"
18+
- docker build -t "${image}-management" "$VARIANT/management"
19+
- ~/official-images/test/run.sh "${image}-management"
1620

1721
after_script:
1822
- docker images

alpine/Dockerfile

Lines changed: 92 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,92 @@
1+
FROM alpine:3.5
2+
3+
# add our user and group first to make sure their IDs get assigned consistently, regardless of whatever dependencies get added
4+
RUN addgroup -S rabbitmq && adduser -S -h /var/lib/rabbitmq -G rabbitmq rabbitmq
5+
6+
# grab su-exec for easy step-down from root
7+
RUN apk add --no-cache 'su-exec>=0.2'
8+
9+
RUN apk add --no-cache \
10+
# Bash for docker-entrypoint
11+
bash \
12+
# Erlang for RabbitMQ
13+
erlang-asn1 \
14+
erlang-hipe \
15+
erlang-crypto \
16+
erlang-eldap \
17+
erlang-inets \
18+
erlang-mnesia \
19+
erlang \
20+
erlang-os-mon \
21+
erlang-public-key \
22+
erlang-sasl \
23+
erlang-ssl \
24+
erlang-syntax-tools \
25+
erlang-xmerl
26+
27+
# get logs to stdout (thanks @dumbbell for pushing this upstream! :D)
28+
ENV RABBITMQ_LOGS=- RABBITMQ_SASL_LOGS=-
29+
# https://github.com/rabbitmq/rabbitmq-server/commit/53af45bf9a162dec849407d114041aad3d84feaf
30+
31+
ENV RABBITMQ_HOME /opt/rabbitmq
32+
ENV PATH $RABBITMQ_HOME/sbin:$PATH
33+
34+
# https://www.rabbitmq.com/install-generic-unix.html
35+
ENV GPG_KEY 0A9AF2115F4687BD29803A206B73A36E6026DFCA
36+
37+
ENV RABBITMQ_VERSION 3.6.6
38+
39+
RUN set -ex; \
40+
\
41+
apk add --no-cache --virtual .build-deps \
42+
ca-certificates \
43+
gnupg \
44+
libressl \
45+
tar \
46+
xz \
47+
; \
48+
\
49+
wget -O rabbitmq-server.tar.xz "https://www.rabbitmq.com/releases/rabbitmq-server/v${RABBITMQ_VERSION}/rabbitmq-server-generic-unix-${RABBITMQ_VERSION}.tar.xz"; \
50+
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+
\
52+
export GNUPGHOME="$(mktemp -d)"; \
53+
gpg --keyserver ha.pool.sks-keyservers.net --recv-keys "$GPG_KEY"; \
54+
gpg --batch --verify rabbitmq-server.tar.xz.asc rabbitmq-server.tar.xz; \
55+
rm -r "$GNUPGHOME" rabbitmq-server.tar.xz.asc; \
56+
\
57+
mkdir -p "$RABBITMQ_HOME"; \
58+
tar \
59+
--extract \
60+
--verbose \
61+
--file rabbitmq-server.tar.xz \
62+
--directory "$RABBITMQ_HOME" \
63+
--strip-components 1 \
64+
; \
65+
rm rabbitmq-server.tar.xz; \
66+
\
67+
# update SYS_PREFIX (first making sure it's set to what we expect it to be)
68+
grep -qE '^SYS_PREFIX=\$\{RABBITMQ_HOME\}$' "$RABBITMQ_HOME/sbin/rabbitmq-defaults"; \
69+
sed -ri 's!^(SYS_PREFIX=).*$!\1!g' "$RABBITMQ_HOME/sbin/rabbitmq-defaults"; \
70+
grep -qE '^SYS_PREFIX=$' "$RABBITMQ_HOME/sbin/rabbitmq-defaults"; \
71+
\
72+
apk del .build-deps
73+
74+
# set home so that any `--user` knows where to put the erlang cookie
75+
ENV HOME /var/lib/rabbitmq
76+
77+
RUN mkdir -p /var/lib/rabbitmq /etc/rabbitmq \
78+
&& echo '[ { rabbit, [ { loopback_users, [ ] } ] } ].' > /etc/rabbitmq/rabbitmq.config \
79+
&& chown -R rabbitmq:rabbitmq /var/lib/rabbitmq /etc/rabbitmq \
80+
&& chmod -R 777 /var/lib/rabbitmq /etc/rabbitmq
81+
VOLUME /var/lib/rabbitmq
82+
83+
# add a symlink to the .erlang.cookie in /root so we can "docker exec rabbitmqctl ..." without gosu
84+
RUN ln -sf /var/lib/rabbitmq/.erlang.cookie /root/
85+
86+
RUN ln -sf "$RABBITMQ_HOME/plugins" /plugins
87+
88+
COPY docker-entrypoint.sh /usr/local/bin/
89+
ENTRYPOINT ["docker-entrypoint.sh"]
90+
91+
EXPOSE 4369 5671 5672 25672
92+
CMD ["rabbitmq-server"]

0 commit comments

Comments
 (0)