-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathDockerfile
114 lines (100 loc) · 3.5 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
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
FROM debian as builder
RUN apt-get -y -qq update && \
apt-get -y -qq upgrade && \
apt-get -y -qq install make \
g++ \
m4 \
cmake \
clang \
libclang-dev \
openssl \
zlib1g-dev \
llvm \
llvm-dev \
xutils-dev \
autoconf \
autoconf-archive \
automake \
libc-dev \
linux-libc-dev \
build-essential \
pkgconf \
curl
RUN curl https://sh.rustup.rs -sSf | sh -s -- --default-toolchain nightly -y
ENV PATH="/root/.cargo/bin:$PATH"
WORKDIR /usr/src/purplecoin
COPY . .
RUN cargo build --release --no-default-features --features "rpc wallet disk miner blake3sum"
FROM debian
ENV RUST_LOG=purplecoin
# Network settings
ENV PURPLECOIN_NETWORK_LISTENADDR=
ENV PURPLECOIN_NETWORK_LISTENPORTMAINNET=8098
ENV PURPLECOIN_NETWORK_LISTENPORTTESTNET=8032
ENV PURPLECOIN_NETWORK_LISTENPORTDEVNET=8031
ENV PURPLECOIN_NETWORK_USEPROTOCOLS=
ENV PURPLECOIN_NETWORK_RPCENABLED=
ENV PURPLECOIN_NETWORK_RPCLISTENPORTMAINNET=8067
ENV PURPLECOIN_NETWORK_RPCLISTENPORTTESTNET=8037
ENV PURPLECOIN_NETWORK_RPCLISTENPORTTESTNET=8027
ENV PURPLECOIN_NETWORK_RPCUSERNAME=
ENV PURPLECOIN_NETWORK_RPCPASSWORD=
ENV PURPLECOIN_NETWORK_SEEDSMAINNET=
ENV PURPLECOIN_NETWORK_SEEDSTESTNET=
ENV PURPLECOIN_NETWORK_SEEDSDEVNET=
ENV PURPLECOIN_NETWORK_SEEDSDEVNET=
# Node settings
ENV PURPLECOIN_NODE_NETWORKNAME=
ENV PURPLECOIN_NODE_SECTORSLISTENING=
ENV PURPLECOIN_NODE_SHARDSLISTENING=
ENV PURPLECOIN_NODE_VERIFIERTHREADS=
ENV PURPLECOIN_NODE_NETWORKTHREADS=
ENV PURPLECOIN_NODE_RANDOMXFASTMODE=
ENV PURPLECOIN_NODE_ARCHIVALMODE=
ENV PURPLECOIN_NODE_PRUNEHEADERS=
ENV PURPLECOIN_NODE_PRUNETRANSACTIONS=
ENV PURPLECOIN_NODE_PRUNEUTXOS=
ENV PURPLECOIN_NODE_DATADIR=
ENV PURPLECOIN_NODE_MEMORYONLY=
ENV PURPLECOIN_NODE_MEMPOOLSIZE=
ENV PURPLECOIN_NODE_DHTBRIDGEENABLED=
ENV PURPLECOIN_NODE_DHTBRIDGESTORAGEMB=
ENV PURPLECOIN_NODE_SAVEUTXOADDRESSES=
ENV PURPLECOIN_NODE_SAVEUTXOASSETS=
ENV PURPLECOIN_NODE_BRIDGEPUBLICQUERIES=
ENV PURPLECOIN_NODE_BRIDGEHTTPQUERIES=
ENV PURPLECOIN_NODE_BRIDGEHTTPLISTENPORT=8080
ENV PURPLECOIN_NODE_BRIDGEHTTPHMACKEY=
# Miner settings
ENV PURPLECOIN_MINER_ONLYSECTORS=
ENV PURPLECOIN_MINER_ONLYALGOS=
ENV PURPLECOIN_MINER_COINBASEADDRESS=
ENV PURPLECOIN_MINER_MINERTHREADS=
# Cluster settings
ENV PURPLECOIN_CLUSTER_CLUSTERENABLED=
ENV PURPLECOIN_CLUSTER_CLUSTERDISCOVERYPORT=3034
ENV PURPLECOIN_CLUSTER_CLUSTERDISCOVERYLISTENADDR=
ENV PURPLECOIN_CLUSTER_CLUSTERCOOKIE=
ENV PURPLECOIN_CLUSTER_VNODESPERSHARD=
ENV PURPLECOIN_CLUSTER_VNODESREPLICATIONFACTOR=
ENV PURPLECOIN_CLUSTER_BLOCKWRITES=
ENV PURPLECOIN_CLUSTER_REPLICATIONMODE=
ENV PURPLECOIN_CLUSTER_REPLICATIONDATACENTER=
ENV PURPLECOIN_CLUSTER_CLUSTERIPS=
# Expose ports
EXPOSE $PURPLECOIN_NETWORK_LISTENPORTMAINNET/tcp
EXPOSE $PURPLECOIN_NETWORK_LISTENPORTMAINNET/udp
EXPOSE $PURPLECOIN_NETWORK_RPCLISTENPORTMAINNET/tcp
EXPOSE $PURPLECOIN_NETWORK_RPCLISTENPORTMAINNET/udp
EXPOSE $PURPLECOIN_NETWORK_LISTENPORTTESTNET/tcp
EXPOSE $PURPLECOIN_NETWORK_LISTENPORTTESTNET/udp
EXPOSE $PURPLECOIN_NETWORK_RPCLISTENPORTTESTNET/tcp
EXPOSE $PURPLECOIN_NETWORK_RPCLISTENPORTTESTNET/udp
EXPOSE $PURPLECOIN_NODE_BRIDGEHTTPLISTENPORT/tcp
EXPOSE $PURPLECOIN_NODE_BRIDGEHTTPLISTENPORT/udp
EXPOSE $PURPLECOIN_CLUSTER_CLUSTERDISCOVERYPORT/tcp
EXPOSE $PURPLECOIN_CLUSTER_CLUSTERDISCOVERYPORT/udp
# MDNS
EXPOSE 5353/udp
COPY --from=builder /usr/src/purplecoin/target/release/purplecoin /purplecoin
ENTRYPOINT ["/purplecoin"]