This repository has been archived by the owner on Jan 3, 2021. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdocker_run.sh
executable file
·153 lines (140 loc) · 3.84 KB
/
docker_run.sh
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
#!/usr/bin/env bash
#/usr/bin/env bash
##Variables
if [ "${OS}" == "Windows_NT" ]; then
OS_TYPE="windows";
DOCKERCMD="winpty docker-compose.exe"
DOCKERCORE="winpty docker.exe"
elif [ "${OSTYPE}" == "linux-gnu" ]; then
OS_TYPE="linux";
DOCKERCMD="docker-compose"
DOCKERCORE="docker"
else
OS_TYPE="macos";
DOCKERCMD="docker-compose"
DOCKERCORE="docker"
fi
## Constants
GREEN_OUTPUT='\033[0;32m'
RED_OUTPUT='\033[0;31m'
YELLOW_OUTPUT='\033[1;33m'
CLEAR_OUTPUT='\033[0m'
## Colored output
pc() {
RES=""
case "$1" in
green)
RES="${GREEN_OUTPUT}$2${CLEAR_OUTPUT}"
;;
red)
RES="${RED_OUTPUT}$2${CLEAR_OUTPUT}"
;;
yellow)
RES="${YELLOW_OUTPUT}$2${CLEAR_OUTPUT}"
;;
*)
RES="${CLEAR_OUTPUT}$2${CLEAR_OUTPUT}"
;;
esac
printf "${RES}"
}
fix_perm_data() {
if [ "${OS_TYPE}" != "windows" ]; then
if [ -d "$(pwd)/node_modules" ]; then own_commands ubuntu chmod -R 777 /var/www/node_modules; fi; \
fi
}
own_commands() {
eval ${DOCKERCORE} exec -it $1 $2 $3 $4 $5 $6 $7 $8
}
help_legend() {
pc "green" "Usage: $0 {--build|--run|--down|--wasm-build|--own|--test|--remove|--help} CMD\n"
}
general_help() {
case "$1" in
--build|-b|build|b)
pc "green" "$0 --build "
pc "none" "сбилдить все контейнеры, "
pc "green" "$0 --build container-name "
pc "none" "для сборки одного контейнера\n"
;;
--run|-r|run|r)
pc "green" "$0 --run "
pc "none" "запустить все контейнеры, "
pc "green" "$0 --run container-name "
pc "none" "для запуска одного контейнера\n"
;;
--down|-d|down|d)
pc "green" "$0 --down "
pc "none" "остановить все контейнеры, "
pc "green" "$0 --down container-name "
pc "none" "для остановки одного контейнера\n"
;;
--wasm-build|wasm-build|wasm)
pc "green" "$0 --wasm-build "
pc "none" "Скомпилировать wasm версию\n"
;;
--own|-o|own|o)
pc "green" "$0 --own container-name cmd "
pc "none" "выполнить произвольную команду в контейнере\n"
;;
--remove|remove)
pc "green" "$0 --remove "
pc "none" "Удалить все контейнеры внутри системы\n"
;;
*)
if [ $1 ]; then
pc "yellow" "Command \"$1\" is not correct.\n"
else
pc "yellow" "Nothing caused.\n"
fi
$0 --help build
$0 --help run
$0 --help down
$0 --help wasm
$0 --help own
$0 --help remove
help_legend
exit 1
esac
}
run() {
if [ "$1" == "build" ]; then
eval ${DOCKERCMD} up -d --build $2 $3
else
eval ${DOCKERCMD} up -d $2 $3
fi
fix_perm_data
## Running tests
# $0 -t
}
case "$1" in
--build|-b)
run 'build' $2 $3
;;
--run|-r)
run 'run' $2 $3
;;
--down|-d)
fix_perm_data
eval ${DOCKERCMD} down
;;
--own|-o)
own_commands $2 $3 $4 $5 $6 $7 $8
;;
--wasm-build)
eval ${DOCKERCORE} exec -it ubuntu build_in_container
;;
--remove)
eval ${DOCKERCORE} system prune -a
;;
--test|-t)
# eval ${DOCKERCMD} exec php-cli php vendor/bin/phpunit
;;
--help|-h)
general_help $2 $3
;;
*)
pc "yellow" "Nothing caused.\n"
help_legend
exit 1
esac