84 lines
2.6 KiB
Plaintext
84 lines
2.6 KiB
Plaintext
IMAGE rabbitmq_3.8.9-201021
|
|
FROM alpine3.12_3.12.1-201021
|
|
|
|
RUN EOF
|
|
# Install RabbitMQ runtime dependencies
|
|
apk --no-cache add procps openssl
|
|
|
|
# Install RabbitMQ build dependencies
|
|
apk --no-cache add --virtual .deps autoconf gcc libc-dev linux-headers make ncurses-dev openssl-dev
|
|
|
|
# Download and unpack Erlang/OTP
|
|
cd /tmp
|
|
wget https://github.com/erlang/otp/archive/OTP-23.1.1.tar.gz
|
|
tar xf OTP-*
|
|
|
|
# Compile and install Erlang/OTP
|
|
cd /tmp/otp-*
|
|
export ERL_TOP=$(pwd)
|
|
export CFLAGS='-g -O2'
|
|
./otp_build autoconf
|
|
./configure \
|
|
--host=x86_64-linux-musl \
|
|
--build=x86_64-linux-musl \
|
|
--disable-dynamic-ssl-lib \
|
|
--disable-hipe \
|
|
--disable-sctp \
|
|
--disable-silent-rules \
|
|
--enable-clock-gettime \
|
|
--enable-hybrid-heap \
|
|
--enable-kernel-poll \
|
|
--enable-shared-zlib \
|
|
--enable-smp-support \
|
|
--enable-threads \
|
|
--with-microstate-accounting=extra \
|
|
--without-common_test \
|
|
--without-debugger \
|
|
--without-dialyzer \
|
|
--without-diameter \
|
|
--without-edoc \
|
|
--without-erl_docgen \
|
|
--without-erl_interface \
|
|
--without-et \
|
|
--without-eunit \
|
|
--without-ftp \
|
|
--without-hipe \
|
|
--without-jinterface \
|
|
--without-megaco \
|
|
--without-observer \
|
|
--without-odbc \
|
|
--without-reltool \
|
|
--without-ssh \
|
|
--without-tftp \
|
|
--without-wx
|
|
make -j $(getconf _NPROCESSORS_ONLN) GEN_OPT_FLGS="-O2 -fno-strict-aliasing"
|
|
make install
|
|
|
|
# Download and install RabbitMQ
|
|
cd /tmp
|
|
wget https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.8.9/rabbitmq-server-generic-unix-latest-toolchain-3.8.9.tar.xz
|
|
tar xf rabbitmq-server-* -C /opt
|
|
mv /opt/rabbitmq* /opt/rabbitmq
|
|
sed -i 's/^SYS_PREFIX=.*$/SYS_PREFIX=/' /opt/rabbitmq/sbin/rabbitmq-defaults
|
|
ln -s /opt/rabbitmq/sbin/* /usr/sbin/
|
|
|
|
# Create RabbitMQ OS user
|
|
addgroup -S -g 5672 rabbitmq
|
|
adduser -S -u 5672 -h /var/lib/rabbitmq -s /bin/false -g rabbitmq -G rabbitmq rabbitmq
|
|
|
|
# Create RabbitMQ directory structure
|
|
mkdir -p /var/lib/rabbitmq /etc/rabbitmq/conf.d /var/log/rabbitmq
|
|
chown -R rabbitmq:rabbitmq /opt/rabbitmq /var/lib/rabbitmq /etc/rabbitmq /var/log/rabbitmq
|
|
chmod 755 /var/lib/rabbitmq /etc/rabbitmq /var/log/rabbitmq
|
|
|
|
# Cleanup
|
|
apk --no-cache del .deps
|
|
rm -rf /usr/local/lib/erlang/lib/*/examples /usr/local/lib/erlang/lib/*/src /tmp/*
|
|
EOF
|
|
|
|
USER rabbitmq
|
|
ENV HOME /var/lib/rabbitmq
|
|
ENV RABBITMQ_LOGS -
|
|
CMD /usr/sbin/rabbitmq-server
|
|
READY /usr/sbin/rabbitmqctl await_startup
|