-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathrun
executable file
·109 lines (87 loc) · 2.39 KB
/
run
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
#!/usr/bin/bash
PROJECT_NAME=goweb
# see: https://pkg.go.dev/text/template
read -r -d '' TEMPLATE << EOM
{{- \$IPAddress := .NetworkSettings.Networks.goweb_backend.IPAddress -}}
{{- \$NetworkMode := .HostConfig.NetworkMode -}}
{{ .State.Status }} {{ .Name }}
aliases: {{(join .NetworkSettings.Networks.goweb_backend.Aliases ", ")}}
{{ range \$p, \$conf := .HostConfig.PortBindings -}}
network: {{ \$IPAddress }} {{(index \$conf 0).HostPort}} ({{ \$NetworkMode }})
{{ end }}
EOM
ContainerIP() {
docker inspect -f '{{ .NetworkSettings.Networks.goweb_backend.IPAddress }}' $1
}
ContainerPort() {
docker inspect -f '{{ range $p, $conf := .HostConfig.PortBindings -}}{{(index $conf 0).HostPort}}{{ end }}' $1
}
case $1 in
"build")
go build ./cmd/server
go build ./cmd/spider
;;
"up:dev")
docker-compose --project-name $PROJECT_NAME -f docker-compose.dev.yml up -d
;;
"dn:dev")
docker-compose --project-name $PROJECT_NAME -f docker-compose.dev.yml down --rmi local
;;
"up:prod")
cd client && npm run build
cd ..
docker-compose --project-name $PROJECT_NAME -f docker-compose.prod.yml --env-file .env up -d
;;
"dn:prod")
docker-compose --project-name $PROJECT_NAME -f docker-compose.prod.yml --env-file .env down --rmi local
;;
"stat")
# for dev mode
docker inspect -f "$TEMPLATE" "${PROJECT_NAME}_db"
docker inspect -f "$TEMPLATE" "${PROJECT_NAME}_adm"
;;
"client")
# for dev mode
cd client && npm run dev
;;
"server")
# for dev mode
export DB_USER_FILE=../data/.web/secrets/postgres_user.txt
export DB_PASS_FILE=../data/.web/secrets/postgres_password.txt
export DB_HOST=$(ContainerIP goweb_db)
export DB_PORT=5432
export DB_NAME=postgres
export HOSTNAME=localhost
export API_PORT=50598
# export GIN_MODE=release
# export GIN_MODE=debug
cd server && go run ./cmd/api
;;
--default)
DEFAULT=YES
shift # past argument
;;
-*|--*)
echo "Unknown option $1"
exit 1
;;
*)
echo "Epmty arguments passed. Try:"
echo
echo " run build"
echo " run client"
echo " run server"
echo
echo " run stat"
echo
echo " run up:dev"
echo " run dn:dev"
echo
echo " run up:prod"
echo " run dn:prod"
echo
exit 1
# POSITIONAL_ARGS+=("$1") # save positional arg
# shift # past argument
;;
esac