-
Notifications
You must be signed in to change notification settings - Fork 488
Expand file tree
/
Copy pathDockerfile_RUPAYA
More file actions
87 lines (80 loc) · 3.9 KB
/
Dockerfile_RUPAYA
File metadata and controls
87 lines (80 loc) · 3.9 KB
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
#
# Dockerfile for a RUPAYA masternode
# usage: docker run marsmensch/masternode-rupaya:latest
#
# how to work with the container
#
# 1) build the container (checkout desired git revision first)
# docker build -t "marsmensch/masternode-rupaya:latest" -f docker/Dockerfile_RUPAYA .
#
# 2) start the container
# docker run -p ${NODE_PORT}:${NODE_PORT} $(PWD)/config/rupaya/rupayad.conf:/opt/data "marsmensch/masternode-rupaya:latest"
#
# 3) start the container interactively
# docker run --interactive --tty --entrypoint=/bin/bash "marsmensch/masternode-rupaya:latest"
#
# 4) standard help
# docker run -v $(PWD)/config/rupaya:/opt/data "marsmensch/masternode-rupaya:latest"
FROM ubuntu:xenial
MAINTAINER Florian Maier <contact@marsmenschen.com>
ENV CONTAINER_USER masternode
ENV PROJECT rupaya
ENV GIT_URL git://github.com/PIVX-Project/PIVX.git
ENV SVC_VERSION tags/v5.0.33
ENV HOME_DIR /usr/local/bin
ENV NODE_PORT 9050
ENV REFRESHED_AT 2019-01-16
# add unprivileged user
RUN adduser --shell /bin/bash --disabled-password \
--disabled-login --gecos '' ${CONTAINER_USER}
# install system packages and compile
RUN apt-get update \
&& apt-get -y upgrade \
&& apt-get -y install --no-install-recommends build-essential libtool autotools-dev \
libcurl4-openssl-dev libboost-all-dev libssl-dev libdb++-dev make autoconf automake \
libtool git apt-utils libprotobuf-dev pkg-config libboost-filesystem-dev libboost-chrono-dev \
libevent-dev libboost-program-options-dev libgmp-dev libboost-test-dev libboost-thread-dev \
&& mkdir -p /opt/code/ && cd /opt/code/ && git clone ${GIT_URL} ${PROJECT} \
&& cd /opt/code/${PROJECT} && git checkout ${SVC_VERSION} \
&& ./autogen.sh && ./configure --enable-tests=no --with-incompatible-bdb \
--enable-glibc-back-compat --with-gui=no \
CFLAGS="-march=native" LIBS="-lcurl -lssl -lcrypto -lz" \
&& make && make install \
# remove unneeded stuff
&& apt-get -y remove build-essential \
libboost-all-dev libboost-atomic-dev libboost-atomic1.58-dev \
libboost-chrono-dev libboost-chrono1.58-dev \
libboost-context-dev libboost-context1.58-dev \
libboost-coroutine-dev libboost-coroutine1.58-dev \
libboost-date-time-dev libboost-date-time1.58-dev \
libboost-dev libboost-exception-dev libboost-exception1.58-dev \
libboost-filesystem-dev libboost-filesystem1.58-dev \
libboost-graph-dev libboost-graph-parallel-dev \
libboost-graph-parallel1.58-dev libboost-graph1.58-dev \
libboost-iostreams-dev libboost-iostreams1.58-dev libboost-locale-dev \
libboost-locale1.58-dev libboost-log-dev \
libboost-log1.58-dev libboost-log1.58.0 libboost-math-dev \
libboost-math1.58-dev libboost-math1.58.0 libboost-mpi-dev \
libboost-mpi-python-dev libboost-mpi-python1.58-dev \
libboost-mpi1.58-dev libboost-program-options-dev \
libboost-program-options1.58-dev libboost-python-dev \
libboost-python1.58-dev libboost-random-dev libboost-random1.58-dev \
libboost-regex-dev libboost-regex1.58-dev libboost-serialization-dev \
libboost-serialization1.58-dev libboost-signals-dev libboost-signals1.58-dev \
libboost-system-dev libboost-system1.58-dev libboost-test-dev libboost-test1.58-dev \
libboost-thread-dev libboost-thread1.58-dev libboost-timer-dev libboost-timer1.58-dev \
libboost-tools-dev libboost-wave-dev libboost-wave1.58-dev libboost1.58-dev \
libboost1.58-tools-dev libc6-dev libdb5.3++-dev libdb5.3-dev libevent-dev \
libexpat1-dev libgmp-dev libibverbs-dev libicu-dev libltdl-dev libnuma-dev \
libopenmpi-dev libprotobuf-dev libpython-dev libpython2.7-dev libssl-dev \
mpi-default-dev python-dev python2.7-dev zlib1g-dev \
&& apt -y autoremove \
&& rm -rf /opt/code \
&& rm -rf /var/lib/apt/lists/*
# EXPOSE the masternode port
EXPOSE ${NODE_PORT}
RUN chown -R ${CONTAINER_USER} ${HOME_DIR}
USER ${CONTAINER_USER}
WORKDIR ${HOME_DIR}
# start command
CMD ["/usr/local/bin/rupayad", "--help"]