-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathDockerfile
99 lines (81 loc) · 3.21 KB
/
Dockerfile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
FROM ubuntu:18.04
ARG erlang_version
ARG elixir_version
ARG server_release_version
WORKDIR /
ENV DEBIAN_FRONTEND noninteractive
RUN apt-get update && apt-get install -y --no-install-recommends \
gnupg \
libxslt-dev \
xsltproc \
xmlto \
curl \
git \
mandoc \
rsync \
ca-certificates \
wget \
python \
zip \
unzip
# Add esl repository
RUN curl -O http://packages.erlang-solutions.com/erlang-solutions_1.0_all.deb && \
dpkg -i erlang-solutions_1.0_all.deb && apt-get update
# Install erlang
RUN apt-get update && apt-get install -y \
erlang-dev=1:${erlang_version}-* \
erlang-src=1:${erlang_version}-* \
# Install erlang-nox manually
erlang-base=1:${erlang_version}-* \
erlang-asn1=1:${erlang_version}-* \
erlang-crypto=1:${erlang_version}-* \
erlang-diameter=1:${erlang_version}-* \
erlang-edoc=1:${erlang_version}-* \
erlang-eldap=1:${erlang_version}-* \
erlang-erl-docgen=1:${erlang_version}-* \
erlang-eunit=1:${erlang_version}-* \
erlang-ic=1:${erlang_version}-* \
erlang-inets=1:${erlang_version}-* \
erlang-mnesia=1:${erlang_version}-* \
erlang-odbc=1:${erlang_version}-* \
erlang-os-mon=1:${erlang_version}-* \
erlang-parsetools=1:${erlang_version}-* \
erlang-public-key=1:${erlang_version}-* \
erlang-runtime-tools=1:${erlang_version}-* \
erlang-snmp=1:${erlang_version}-* \
erlang-ssh=1:${erlang_version}-* \
erlang-ssl=1:${erlang_version}-* \
erlang-syntax-tools=1:${erlang_version}-* \
erlang-tools=1:${erlang_version}-* \
erlang-xmerl=1:${erlang_version}-*
# Install elixir
RUN apt-get update && apt-get install -y locales && \
sed -i -e 's/# en_US.UTF-8 UTF-8/en_US.UTF-8 UTF-8/' /etc/locale.gen && \
dpkg-reconfigure --frontend=noninteractive locales && \
update-locale LANG=en_US.UTF-8
ENV LANG en_US.UTF-8
ENV LANGUAGE en_US:en
ENV LC_ALL en_US.UTF-8
RUN apt-get update && apt-get install -y elixir=${elixir_version}-*
# Add local RabbitMQ repo
RUN mkdir rabbitmq-server
COPY . rabbitmq-server/
# Download rabbitmq-server-release
RUN git clone https://github.com/rabbitmq/rabbitmq-server-release.git
WORKDIR rabbitmq-server-release
RUN git checkout ${server_release_version}
# Set local RabbitMQ as dependency
RUN sed -i -e 's/^dep_rabbit .*$/dep_rabbit = cp \/rabbitmq-server/g' rabbitmq-components.mk
# Build generic unix RabbitMQ package tarball
RUN make package-generic-unix PROJECT_VERSION=${server_release_version}
# Install the RabbitMQ package
RUN tar -xf PACKAGES/rabbitmq-server-generic-unix-*.tar.xz -C /.
WORKDIR /rabbitmq_server-${server_release_version}
# Add ctl scripts to /usr/bin
ENV PATH /rabbitmq_server-${server_release_version}/sbin:${PATH}
# Allow to login to MGMT web UI from outside a container
RUN echo "loopback_users.guest = false" > etc/rabbitmq/rabbitmq.conf
# Enable Management plugin
RUN echo "[rabbitmq_management]." > etc/rabbitmq/enabled_plugins
# Start RabbitMQ sever
CMD echo ${RABBITMQ_COOKIE:-rabbit} > /root/.erlang.cookie && chmod 600 /root/.erlang.cookie && ./sbin/rabbitmq-server