-
Notifications
You must be signed in to change notification settings - Fork 0
/
startup.sh
executable file
·125 lines (109 loc) · 2.9 KB
/
startup.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
#!/usr/bin/env bash
##
## Run opsdroid core with specified in Dockerfile connectors and skills
##
# Only allocate tty if one is detected
# Keep STDIN open even if not attached
if [[ -t 0 ]]; then IT+=(-i); fi
# Allocate a pseudo-tty
if [[ -t 1 ]]; then IT+=(-t); fi
IMAGE_NAME="${IMAGE_NAME:-"opsdroid-demo"}"
HOST="${HOST:-"0.0.0.0"}"
PORT_IN="${PORT_IN:-"8080"}"
PORT_OUT="${PORT_OUT:-"8080"}"
PATH_TO_DOCKERFILE=${PATH_TO_DOCKERFILE:-"bot/."}
echo "Starting..."
echo "Got parameters:"
echo "IMAGE_NAME=${IMAGE_NAME}"
echo "HOST=${HOST}"
echo "PORT_IN=${PORT_IN}"
echo "PORT_OUT=${PORT_OUT}"
echo "PATH_TO_DOCKERFILE=${PATH_TO_DOCKERFILE}"
echo
function showHelp() {
echo "
IMAGE_NAME="opsdroid-demo" \
HOST="0.0.0.0" \
PORT_IN="8080" \
PORT_OUT="8080" \
PATH_TO_DOCKERFILE="bot/." \
(<- параметры опционально)
./startup.sh (запустить opsdroid и бота)
--help shows help
--build builds container
--run runs container
--runbg runs container in background
--cli runs container with interactive cli (bash)
--stop stops running docker container
--remove removes container
--list shows available docker containers
--ps show running containers
"
}
function buildDocker() {
echo "Start building..."
sudo docker build -t $IMAGE_NAME $PATH_TO_DOCKERFILE
}
function runDocker() {
echo "Start running..."
sudo docker run --rm "${IT[@]}" -p $HOST:$PORT_IN:$PORT_OUT $IMAGE_NAME
}
function runDockerInBackground() {
echo "Start running in background..."
sudo docker run --rm "${IT[@]}" -p $HOST:$PORT_IN:$PORT_OUT -td $IMAGE_NAME
}
function stopDocker() {
echo "Trying to stop..."
sudo docker stop $(sudo docker ps | grep $IMAGE_NAME | awk 'NF>1{print $NF}')
}
function removeDocker() {
echo "Trying to remove..."
sudo docker rmi -f $(sudo docker images | grep $IMAGE_NAME | awk '{print $3}')
}
function listImages() {
echo "List docker images"
sudo docker images
}
function showRunningContainers() {
echo "List docker containers"
sudo docker ps
}
while :; do
case $1 in
--help)
showHelp
exit
;;
--build)
buildDocker
;;
--run)
runDocker
;;
--runbg)
runDockerInBackground
;;
--stop)
stopDocker
;;
--remove)
removeDocker
;;
--list)
listImages
;;
--ps)
showRunningContainers
;;
--)
shift
break
;;
-?*)
printf 'WARN: Unknown option (ignored): %s\n' "$1" >&2
;;
*)
break
esac
shift
done