-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathshell.bash
executable file
·64 lines (49 loc) · 1.48 KB
/
shell.bash
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
#!/bin/bash
app_name="kappashiro-bot"
host="kevin@127.0.0.1"
image_id="$(ssh "$host" docker images --filter=reference="$app_name" --format "{{.ID}}")"
echo "$1 $2"
run_container() {
docker run \
--log-opt max-size=50m \
--log-opt max-file=5 \
-e TZ=America/Sao_Paulo \
"$env" \
"$cond" \
--name="$app_name" \
-p 5555:5555 \
-d \
--restart=unless-stopped "$app_name"
}
clear_image() {
docker rmi "$image_id"
}
if [ "$1" == "local" ]; then
env="-e ENV_PROD=0"
cond="--net='host'"
if [ "$2" == "deploy" ]; then
docker build -t "$app_name" .
docker stop "$app_name"
docker rm "$app_name"
run_container
fi
if [ "$2" == "logs" ]; then
docker logs -f "$app_name"
fi
fi
if [ "$1" == "remote" ]; then
env="-e ENV_PROD=1"
cond="--net='host'"
if [ "$2" == "deploy" ]; then
ssh -tt "$host" "mkdir -p $app_name && cd $app_name && sudo chmod 777 * -R"
rsync --progress --exclude-from '.deployignore' -avz -e "ssh" . "$host:$app_name"
ssh -tt "$host" "cd $app_name && docker build -t $app_name ."
ssh -tt "$host" "cd $app_name && docker stop $app_name"
ssh -tt "$host" "cd $app_name && docker rm $app_name"
ssh -tt "$host" "cd $app_name && $(run_container)"
ssh -tt "$host" "docker rmi $(echo "$image_id")"
fi
if [ "$2" == "logs" ]; then
ssh -tt "$host" "docker logs -f $app_name"
fi
fi