Skip to content

Commit 1295421

Browse files
fred-yu-2013stiartsly
authored andcommitted
CU-1pd3egf - Refine the scripts for the docker deployment.
1 parent 9895feb commit 1295421

File tree

7 files changed

+126
-50
lines changed

7 files changed

+126
-50
lines changed

Diff for: .dockerignore

+8-1
Original file line numberDiff line numberDiff line change
@@ -8,4 +8,11 @@ data
88
.data
99
did_user_data
1010
test_did_user_data
11-
hive.log
11+
hive.log
12+
.DS_Store
13+
.git
14+
.gitignore
15+
.idea
16+
.pytest_cache
17+
.rclone_config
18+
.travis.yml

Diff for: Dockerfile

+1
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ ADD requirements.txt /src/
1010

1111
WORKDIR /src
1212

13+
RUN pip install --upgrade pip
1314
RUN pip install -r requirements.txt
1415

1516
ADD . /src/

Diff for: config/.env.local

+5-9
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ MONGO_TYPE=
3131
#MONGO_HOST=mongodb+srv://Fred:<password>@cluster0.tt3yh.mongodb.net
3232
## elif MONGO_TYPE=
3333
MONGO_HOST=localhost
34-
MONGO_PORT=27022
34+
MONGO_PORT=27020
3535

3636
DID_INFO_DB_NAME=hive_manage_info
3737

@@ -40,17 +40,13 @@ RCLONE_CONFIG_FILE_DIR=./.rclone_config
4040
#BACKUP_FTP_PORT=2122
4141

4242
# This value must be '***v<major>.<minor>.<patch>' or '<major>.<minor>.<patch>'
43-
HIVE_VERSION=v2.3.7
44-
HIVE_COMMIT_HASH=965026cfe004f23ebb9e5751d798ae8478cc6ebe
43+
HIVE_VERSION=v2.3.6
44+
HIVE_COMMIT_HASH=cec7d255e758bfddea3cff0a36b117bae0770b13
4545

4646
# The following is only for v2 APIs.
4747

4848
ENABLE_CORS=True
4949

5050
ENABLE_IPFS = True
51-
IPFS_NODE_URL = https://ipfs.elastoscarrier.org
52-
IPFS_PROXY_URL = https://ipfs.elastoscarrier.org
53-
54-
# for testing
55-
PAYMENT_CHECK_EXPIRED=False
56-
BACKUP_IS_SYNC=True
51+
IPFS_NODE_URL = http://localhost:5001
52+
IPFS_PROXY_URL = http://localhost:8080
File renamed without changes.
File renamed without changes.

Diff for: install.sh renamed to hive/tools/install.sh

File renamed without changes.

Diff for: run.sh

+112-40
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,43 @@
11
#!/usr/bin/env bash
22

33
function start_db () {
4-
docker container stop hive-mongo || true && docker container rm -f hive-mongo || true
4+
docker container list --all | grep hive-mongo > /dev/null \
5+
&& docker container stop hive-mongo > /dev/null \
6+
&& docker container rm -f hive-mongo > /dev/null
7+
echo -n "Hive-Mongo Container: "
58
docker run -d --name hive-mongo \
6-
--network hive \
9+
--network hive-service \
710
-v ${PWD}/.mongodb-data:/data/db \
811
-p 27020:27017 \
9-
mongo:4.4.0
12+
mongo:4.4.0 | cut -c -9
1013
}
1114

12-
function start_test_db () {
13-
docker container stop hive-test-mongo || true && docker container rm -f hive-test-mongo || true
14-
docker run -d --name hive-test-mongo \
15-
--network hive \
16-
-v ${PWD}/.mongodb-test-data:/data/db \
17-
-p 27022:27017 \
18-
mongo:4.4.0
15+
function start_ipfs() {
16+
docker container list --all | grep hive-ipfs > /dev/null \
17+
&& docker container stop hive-ipfs > /dev/null \
18+
&& docker container rm -f hive-ipfs > /dev/null
19+
echo -n "Hive-IPFS Container: "
20+
mkdir -p ${PWD}/.ipfs-data/ipfs-docker-staging ; mkdir -p ${PWD}/.ipfs-data/ipfs-docker-data
21+
docker run -d --name ipfs-node \
22+
-v ${PWD}/.ipfs-data/ipfs-docker-staging:/export \
23+
-v ${PWD}/.ipfs-data/ipfs-docker-data:/data/ipfs \
24+
-p 8080:8080 -p 4001:4001 -p 127.0.0.1:5001:5001 \
25+
ipfs/go-ipfs:latest | cut -c -9
26+
}
27+
28+
function start_node() {
29+
docker container list --all | grep hive-node > /dev/null \
30+
&& docker container stop hive-node > /dev/null \
31+
&& docker container rm -f hive-node > /dev/null
32+
docker image rm -f elastos/hive-node
33+
docker build -t elastos/hive-node . > /dev/null
34+
echo -n "Hive-Node Container: "
35+
docker run -d --name hive-node \
36+
--network hive-service \
37+
-v ${PWD}/.data:/src/data \
38+
-v ${PWD}/.env:/src/.env \
39+
-p 5000:5000 \
40+
elastos/hive-node | cut -c -9
1941
}
2042

2143
function setup_venv () {
@@ -44,42 +66,84 @@ function setup_venv () {
4466
esac
4567
}
4668

47-
function start_docker () {
48-
docker network create hive
49-
50-
start_db
69+
function prepare_env_file() {
70+
if [ -f ".env" ]; then
71+
return
72+
fi
73+
74+
cp .env.example .env
75+
76+
DID_MNEMONIC=$(grep 'DID_MNEMONIC' .env | sed 's/DID_MNEMONIC="//;s/"//')
77+
echo -n "Your DID MNEMONIC: "
78+
echo -e "\033[;36m ${DID_MNEMONIC} \033[0m"
79+
echo -n "Confirm ? (y/n) "
80+
read RESULT
81+
RESULT=$(echo ${RESULT})
82+
if [ ! "${RESULT}" == "y" ];then
83+
echo -n "Please input your DID MNEMONIC: "
84+
read DID_MNEMONIC
85+
DID_MNEMONIC=$(echo ${DID_MNEMONIC})
86+
[ "${DID_MNEMONIC}" = "" ] && echo "You don't input DID MNEMONIC" && exit 1
87+
sed -i "/DID_MNEMONIC/s/^.*$/DID_MNEMONIC=\"${DID_MNEMONIC}\"/" .env
88+
fi
89+
90+
91+
echo -n "Please input your DID MNEMONIC PASSPHRASE: "
92+
read DID_PASSPHRASE
93+
DID_PASSPHRASE=$(echo ${DID_PASSPHRASE})
94+
sed -i "/DID_PASSPHRASE/s/^.*$/DID_PASSPHRASE=${DID_PASSPHRASE}/" .env
95+
echo -n "Please input your DID MNEMONIC SECRET: "
96+
read DID_STOREPASS
97+
DID_STOREPASS=$(echo ${DID_STOREPASS})
98+
[ "${DID_STOREPASS}" != "" ] && sed -i "/DID_STOREPASS/s/^.*$/DID_STOREPASS=${DID_STOREPASS}/" .env
99+
100+
sed -i "/DID_RESOLVER/s/^.*$/DID_RESOLVER=http:\/\/api.elastos.io:20606/" .env
101+
sed -i "/ELA_RESOLVER/s/^.*$/ELA_RESOLVER=http:\/\/api.elastos.io:20336/" .env
102+
sed -i "/MONGO_HOST/s/^.*$/MONGO_HOST=hive-mongo/" .env
103+
sed -i "/MONGO_PORT/s/^.*$/MONGO_PORT=27017/" .env
104+
}
51105

106+
function check_docker() {
52107
echo "Running using docker..."
53-
docker container stop hive-node || true && docker container rm -f hive-node || true
54-
docker build -t elastos/hive-node .
55-
docker run -d --name hive-node \
56-
--network hive \
57-
-v ${PWD}/.data:/src/data \
58-
-v ${PWD}/.env:/src/.env \
59-
-p 5000:5000 \
60-
elastos/hive-node
108+
docker version > /dev/null 2>&1
109+
if [ ! $? -eq 0 ];then
110+
echo "You don't have docker installed. Please run the below commands to install docker"
111+
echo "
112+
$ curl -fsSL https://get.docker.com -o get-docker.sh
113+
$ sudo sh get-docker.sh
114+
$ sudo usermod -aG docker $(whoami)
115+
"
116+
exit
117+
fi
61118
}
62119

63-
function start_direct () {
64-
docker network create hive
65-
120+
function prepare_before_running() {
121+
check_docker
122+
prepare_env_file
123+
docker network ls | grep hive-service > /dev/null || docker network create hive-service
66124
start_db
125+
start_ipfs
126+
}
67127

68-
echo "Running directly on the machine..."
69-
ps -ef | grep gunicorn | awk '{print $2}' | xargs kill -9
128+
function start_docker () {
129+
echo "Running by docker..."
130+
prepare_before_running
131+
start_node
132+
source wait_node.sh
133+
}
70134

135+
function start_direct () {
136+
echo "Running directly only..."
137+
prepare_before_running
71138
setup_venv
72-
73139
LD_LIBRARY_PATH="$PWD/hive/util/did/" python manage.py runserver
74140
}
75141

76142
function test () {
77-
docker network create hive
78-
79-
start_db
80-
start_test_db
81-
143+
echo "Running directly only..."
144+
prepare_before_running
82145
setup_venv
146+
LD_LIBRARY_PATH="$PWD/hive/util/did/" python manage.py runserver &
83147

84148
rm -rf data
85149
rm -f hive.log
@@ -103,15 +167,20 @@ function test () {
103167
pytest --disable-pytest-warnings -xs tests/scripting_test.py
104168
pytest --disable-pytest-warnings -xs tests/payment_test.py
105169
pytest --disable-pytest-warnings -xs tests/backup_test.py
106-
107-
rm -f hive.log
108-
rm -f test_patch.delta
109-
110-
# docker container stop hive-mongo && docker container rm -f hive-mongo
111-
# docker container stop hive-test-mongo && docker container rm -f hive-test-mongo
112170
}
113171

114-
export HIVE_NODE_HOME="."
172+
function stop() {
173+
hive_node=$(docker container list --all | grep hive-node | awk '{print $1}')
174+
if [ -n "${hive_node}" ];then
175+
docker container stop ${hive_node}
176+
docker container rm ${hive_node}
177+
fi
178+
hive_mongo=$(docker container list --all | grep hive-mongo | awk '{print $1}')
179+
if [ -n "${hive_mongo}" ];then
180+
docker container stop ${hive_mongo}
181+
docker container rm ${hive_mongo}
182+
fi
183+
}
115184

116185
case "$1" in
117186
direct)
@@ -123,6 +192,9 @@ case "$1" in
123192
test)
124193
test
125194
;;
195+
stop)
196+
stop
197+
;;
126198
*)
127199
echo "Usage: run.sh {docker|direct|test}"
128200
exit 1

0 commit comments

Comments
 (0)