forked from openhive-network/hive
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathDockerfile
More file actions
159 lines (124 loc) · 5.66 KB
/
Dockerfile
File metadata and controls
159 lines (124 loc) · 5.66 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
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
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
#Usage: DOCKER_BUILDKIT=1 docker build --no-cache --target=testnet_node_builder .
ARG LOW_MEMORY_NODE=ON
ARG CLEAR_VOTES=ON
ARG BUILD_HIVE_TESTNET=OFF
ARG ENABLE_MIRA=OFF
FROM registry.gitlab.syncad.com/hive/hive/hive-baseenv:latest AS builder
ENV src_dir="/usr/local/src/hive"
ENV install_base_dir="/usr/local/hive"
ENV LANG=en_US.UTF-8
ADD . ${src_dir}
WORKDIR ${src_dir}
###################################################################################################
## CONSENSUS NODE BUILD ##
###################################################################################################
FROM builder AS consensus_node_builder
RUN \
cd ${src_dir} && \
${src_dir}/ciscripts/build.sh "ON" "ON" "OFF" "OFF"
###################################################################################################
## CONSENSUS NODE CONFIGURATION ##
###################################################################################################
FROM builder AS consensus_node
ARG TRACKED_ACCOUNT_NAME
ENV TRACKED_ACCOUNT_NAME=${TRACKED_ACCOUNT_NAME}
ARG USE_PUBLIC_BLOCKLOG
ENV USE_PUBLIC_BLOCKLOG=${USE_PUBLIC_BLOCKLOG}
WORKDIR "${install_base_dir}/consensus"
# Get all needed files from previous stage, and throw away unneeded rest(like objects)
COPY --from=consensus_node_builder ${src_dir}/build/install-root/ ${src_dir}/contrib/hived.run ./
COPY --from=consensus_node_builder ${src_dir}/contrib/config-for-docker.ini datadir/config.ini
RUN \
ls -la && \
chmod +x hived.run
# rpc service :
EXPOSE 8090
# p2p service :
EXPOSE 2001
CMD "${install_base_dir}/consensus/hived.run"
###################################################################################################
## FAT NODE BUILD ##
###################################################################################################
FROM builder AS fat_node_builder
RUN \
cd ${src_dir} && \
${src_dir}/ciscripts/build.sh "OFF" "OFF" "OFF" "ON"
###################################################################################################
## FAT NODE CONFIGURATION ##
###################################################################################################
FROM builder AS fat_node
ARG TRACKED_ACCOUNT_NAME
ENV TRACKED_ACCOUNT_NAME=${TRACKED_ACCOUNT_NAME}
ARG USE_PUBLIC_BLOCKLOG
ENV USE_PUBLIC_BLOCKLOG=${USE_PUBLIC_BLOCKLOG}
WORKDIR "${install_base_dir}/fat-node"
# Get all needed files from previous stage, and throw away unneeded rest(like objects)
COPY --from=fat_node_builder ${src_dir}/build/install-root/ ${src_dir}/contrib/hived.run ./
COPY --from=fat_node_builder ${src_dir}/contrib/config-for-docker.ini datadir/config.ini
RUN \
ls -la && \
chmod +x hived.run
# rpc service :
EXPOSE 8090
# p2p service :
EXPOSE 2001
CMD "${install_base_dir}/fat-node/hived.run"
###################################################################################################
## GENERAL NODE BUILD ##
###################################################################################################
FROM builder AS general_node_builder
ARG LOW_MEMORY_NODE
ARG CLEAR_VOTES
ARG BUILD_HIVE_TESTNET
ARG ENABLE_MIRA
ENV LOW_MEMORY_NODE=${LOW_MEMORY_NODE}
ENV CLEAR_VOTES=${CLEAR_VOTES}
ENV BUILD_HIVE_TESTNET=${BUILD_HIVE_TESTNET}
ENV ENABLE_MIRA=${ENABLE_MIRA}
RUN \
cd ${src_dir} && \
${src_dir}/ciscripts/build.sh ${LOW_MEMORY_NODE} ${CLEAR_VOTES} ${BUILD_HIVE_TESTNET} ${ENABLE_MIRA}
###################################################################################################
## GENERAL NODE CONFIGURATION ##
###################################################################################################
FROM builder AS general_node
ARG TRACKED_ACCOUNT_NAME
ENV TRACKED_ACCOUNT_NAME=${TRACKED_ACCOUNT_NAME}
ARG USE_PUBLIC_BLOCKLOG
ENV USE_PUBLIC_BLOCKLOG=${USE_PUBLIC_BLOCKLOG}
WORKDIR "${install_base_dir}/hive-node"
# Get all needed files from previous stage, and throw away unneeded rest(like objects)
COPY --from=general_node_builder ${src_dir}/build/install-root/ ${src_dir}/contrib/hived.run ./
COPY --from=general_node_builder ${src_dir}/contrib/config-for-docker.ini datadir/config.ini
RUN \
ls -la && \
chmod +x hived.run
# rpc service :
EXPOSE 8090
# p2p service :
EXPOSE 2001
CMD "${install_base_dir}/hive-node/hived.run"
###################################################################################################
## TESTNET NODE BUILD ##
###################################################################################################
FROM builder AS testnet_node_builder
ARG LOW_MEMORY_NODE=OFF
ARG CLEAR_VOTES=OFF
ARG ENABLE_MIRA=OFF
ENV LOW_MEMORY_NODE=${LOW_MEMORY_NODE}
ENV CLEAR_VOTES=${CLEAR_VOTES}
ENV BUILD_HIVE_TESTNET="ON"
ENV ENABLE_MIRA=${ENABLE_MIRA}
RUN \
cd ${src_dir} && \
${src_dir}/ciscripts/build.sh ${LOW_MEMORY_NODE} ${CLEAR_VOTES} ${BUILD_HIVE_TESTNET} ${ENABLE_MIRA} && \
apt-get update && \
apt-get install -y screen && \
pip3 install -U secp256k1prp && \
git clone https://gitlab.syncad.com/hive/beem.git && \
cd beem && \
git checkout dk-update-proposal-operation && \
python3 setup.py build && \
python3 setup.py install --user && \
cd ${src_dir} && \
${src_dir}/ciscripts/run_regressions.sh