1
+ # #!/bin/bash
2
+
3
+ # # Initialize default values
4
+ # VERSION=""
5
+ # NODE_NAME=""
6
+ # NODE_SIDE_TYPE="high"
7
+ # NODE_TYPE=""
8
+ # PORT=""
9
+
10
+ # # Function to display usage
11
+ # usage() {
12
+ # echo "Usage: $0 [-v|--version <version>] [-n|--name <node_name>] [-s|--side <node_side_type>] [-t|--type <node_type>] [-p|--port <port>]"
13
+ # exit 1
14
+ # }
15
+
16
+ # # Parse command line options
17
+ # while [[ "$#" -gt 0 ]]; do
18
+ # case "$1" in
19
+ # -v|--version)
20
+ # VERSION="$2"
21
+ # shift 2
22
+ # ;;
23
+ # -n|--name)
24
+ # NODE_NAME="$2"
25
+ # shift 2
26
+ # ;;
27
+ # -s|--side)
28
+ # NODE_SIDE_TYPE="$2"
29
+ # shift 2
30
+ # ;;
31
+ # -t|--type)
32
+ # NODE_TYPE="$2"
33
+ # shift 2
34
+ # ;;
35
+ # -p|--port)
36
+ # PORT="$2"
37
+ # shift 2
38
+ # ;;
39
+ # *)
40
+ # usage
41
+ # ;;
42
+ # esac
43
+ # done
44
+
45
+ # # Check if all required options are set
46
+ # if [[ -z "$VERSION" || -z "$NODE_NAME" || -z "$NODE_TYPE" || -z "$PORT" ]]; then
47
+ # echo "All options are required."
48
+ # usage
49
+ # fi
50
+
51
+
52
+ # [ -f "$TGZ_FILE" ] && rm -f "$TGZ_FILE"
53
+ # [ -f "$COMPOSE_FILE" ] && rm -f "$COMPOSE_FILE"
54
+
55
+
56
+ # #Use curl to download the fille from azure blob storage
57
+ # curl -L -o syft-file.tgz "https://openminedblob.blob.core.windows.net/syft-files/syft-compose-file.tar.gz"
58
+
59
+
60
+ # # Unzip the .tgz file
61
+ # tar -xzf syft-file.tgz
62
+
63
+ # #Change directory to the unzipped folder
64
+ # cd syft-compose-files
65
+
66
+
67
+ # # Detect OS
68
+ # OS="linux"
69
+ # case "$(uname)" in
70
+ # Darwin)
71
+ # OS="mac"
72
+ # ;;
73
+ # esac
74
+
75
+ # # Assuming the .env file is in the current directory after unzipping
76
+ # # Update the VERSION, NODE_NAME, NODE_SIDE_TYPE, NODE_TYPE, and PORT values based on the OS
77
+ # if [[ "$OS" == "mac" ]]; then
78
+ # sed -i '' "s/^VERSION=.*$/VERSION=$VERSION/" .env
79
+ # sed -i '' "s/^NODE_NAME=.*$/NODE_NAME=$NODE_NAME/" .env
80
+ # sed -i '' "s/^NODE_SIDE_TYPE=.*$/NODE_SIDE_TYPE=$NODE_SIDE_TYPE/" .env
81
+ # sed -i '' "s/^NODE_TYPE=.*$/NODE_TYPE=$NODE_TYPE/" .env
82
+ # sed -i '' "s/^PORT=.*$/PORT=$PORT/" .env
83
+ # else
84
+ # sed -i "s/^VERSION=.*$/VERSION=$VERSION/" .env
85
+ # sed -i "s/^NODE_NAME=.*$/NODE_NAME=$NODE_NAME/" .env
86
+ # sed -i "s/^NODE_SIDE_TYPE=.*$/NODE_SIDE_TYPE=$NODE_SIDE_TYPE/" .env
87
+ # sed -i "s/^NODE_TYPE=.*$/NODE_TYPE=$NODE_TYPE/" .env
88
+ # sed -i "s/^PORT=.*$/PORT=$PORT/" .env
89
+ # fi
90
+
91
+
92
+
93
+ # # Modify docker-compose.yml if the version is not 0.8.2-beta.6
94
+ # if [[ "$VERSION" != "0.8.2-beta.6" ]]; then
95
+ # if [[ "$OS" == "mac" ]]; then
96
+ # sed -i '' '/command: "\/app\/grid\/start.sh"/s/^/#/' docker-compose.yml
97
+ # else
98
+ # sed -i '/command: "\/app\/grid\/start.sh"/s/^/#/' docker-compose.yml
99
+ # fi
100
+ # fi
101
+
102
+
103
+
104
+ # # Run the docker compose command
105
+ # docker compose --env-file ./.env -p "$NODE_NAME" --profile blob-storage --profile frontend --file docker-compose.yml up -d
106
+
107
+ # # Change directory out and clean up the downloaded file.tgz
108
+ # cd .. && rm -f syft-file.tgz
109
+
110
+ #! /bin/bash
111
+
112
+ # Initialize default values
1
113
#! /bin/bash
2
114
3
115
# Initialize default values
4
116
VERSION=" "
5
117
NODE_NAME=" "
6
- NODE_SIDE_TYPE=" high"
118
+ NODE_SIDE_TYPE=" high" # Default value for NODE_SIDE_TYPE
7
119
NODE_TYPE=" "
8
120
PORT=" "
121
+ DEFAULT_ROOT_EMAIL=
" [email protected] "
122
+ DEFAULT_ROOT_PASSWORD=" changethis"
9
123
10
124
# Function to display usage
11
125
usage () {
12
- echo " Usage: $0 [ -v|--version <version>] [ -n|--name <node_name>] [-s|--side <node_side_type>] [-t |--type <node_type >] [-p |--port <port >]"
126
+ echo " Usage: $0 -v|--version <version> -n|--name <node_name> -t|--type <node_type> -p|--port <port> [-s|--side <node_side_type>] [-email |--root-email <default_root_email >] [--password |--root-password <default_root_password >]"
13
127
exit 1
14
128
}
15
129
@@ -36,6 +150,14 @@ while [[ "$#" -gt 0 ]]; do
36
150
PORT=" $2 "
37
151
shift 2
38
152
;;
153
+ -email|--root-email)
154
+ DEFAULT_ROOT_EMAIL=" $2 "
155
+ shift 2
156
+ ;;
157
+ -password|--root-password)
158
+ DEFAULT_ROOT_PASSWORD=" $2 "
159
+ shift 2
160
+ ;;
39
161
* )
40
162
usage
41
163
;;
@@ -48,61 +170,27 @@ if [[ -z "$VERSION" || -z "$NODE_NAME" || -z "$NODE_TYPE" || -z "$PORT" ]]; then
48
170
usage
49
171
fi
50
172
51
-
52
- [ -f " $TGZ_FILE " ] && rm -f " $TGZ_FILE "
53
- [ -f " $COMPOSE_FILE " ] && rm -f " $COMPOSE_FILE "
54
-
55
-
56
- # Use curl to download the fille from azure blob storage
57
- curl -L -o syft-file.tgz " https://openminedblob.blob.core.windows.net/syft-files/syft-compose-file.tar.gz"
58
-
59
-
60
- # Unzip the .tgz file
61
- tar -xzf syft-file.tgz
62
-
63
- # Change directory to the unzipped folder
64
- cd syft-compose-files
65
-
66
-
67
- # Detect OS
68
- OS=" linux"
69
- case " $( uname) " in
70
- Darwin)
71
- OS=" mac"
72
- ;;
73
- esac
74
-
75
- # Assuming the .env file is in the current directory after unzipping
76
- # Update the VERSION, NODE_NAME, NODE_SIDE_TYPE, NODE_TYPE, and PORT values based on the OS
77
- if [[ " $OS " == " mac" ]]; then
78
- sed -i ' ' " s/^VERSION=.*$/VERSION=$VERSION /" .env
79
- sed -i ' ' " s/^NODE_NAME=.*$/NODE_NAME=$NODE_NAME /" .env
80
- sed -i ' ' " s/^NODE_SIDE_TYPE=.*$/NODE_SIDE_TYPE=$NODE_SIDE_TYPE /" .env
81
- sed -i ' ' " s/^NODE_TYPE=.*$/NODE_TYPE=$NODE_TYPE /" .env
82
- sed -i ' ' " s/^PORT=.*$/PORT=$PORT /" .env
83
- else
84
- sed -i " s/^VERSION=.*$/VERSION=$VERSION /" .env
85
- sed -i " s/^NODE_NAME=.*$/NODE_NAME=$NODE_NAME /" .env
86
- sed -i " s/^NODE_SIDE_TYPE=.*$/NODE_SIDE_TYPE=$NODE_SIDE_TYPE /" .env
87
- sed -i " s/^NODE_TYPE=.*$/NODE_TYPE=$NODE_TYPE /" .env
88
- sed -i " s/^PORT=.*$/PORT=$PORT /" .env
173
+ # Build the Docker run command
174
+ DOCKER_RUN_CMD=" docker run --rm -d \
175
+ --name \" $NODE_NAME \" \
176
+ -e VERSION=\" $VERSION \" \
177
+ -e NODE_NAME=\" $NODE_NAME \" \
178
+ -e NODE_SIDE_TYPE=\" $NODE_SIDE_TYPE \" \
179
+ -e NODE_TYPE=\" $NODE_TYPE \" \
180
+ -e PORT=\" $PORT \" \
181
+ -p \" $PORT :$PORT \" "
182
+
183
+ # Add optional environment variables if provided
184
+ if [[ -n " $DEFAULT_ROOT_EMAIL " ]]; then
185
+ DOCKER_RUN_CMD=" $DOCKER_RUN_CMD -e DEFAULT_ROOT_EMAIL=\" $DEFAULT_ROOT_EMAIL \" "
89
186
fi
90
187
91
-
92
-
93
- # Modify docker-compose.yml if the version is not 0.8.2-beta.6
94
- if [[ " $VERSION " != " 0.8.2-beta.6" ]]; then
95
- if [[ " $OS " == " mac" ]]; then
96
- sed -i ' ' ' /command: "\/app\/grid\/start.sh"/s/^/#/' docker-compose.yml
97
- else
98
- sed -i ' /command: "\/app\/grid\/start.sh"/s/^/#/' docker-compose.yml
99
- fi
188
+ if [[ -n " $DEFAULT_ROOT_PASSWORD " ]]; then
189
+ DOCKER_RUN_CMD=" $DOCKER_RUN_CMD -e DEFAULT_ROOT_PASSWORD=\" $DEFAULT_ROOT_PASSWORD \" "
100
190
fi
101
191
192
+ # Add the Docker image
193
+ DOCKER_RUN_CMD=" $DOCKER_RUN_CMD \" openmined/grid-backend:$VERSION \" "
102
194
103
-
104
- # Run the docker compose command
105
- docker compose --env-file ./.env -p " $NODE_NAME " --profile blob-storage --profile frontend --file docker-compose.yml up -d
106
-
107
- # Change directory out and clean up the downloaded file.tgz
108
- cd .. && rm -f syft-file.tgz
195
+ # Execute the Docker run command
196
+ eval $DOCKER_RUN_CMD
0 commit comments