forked from jumpsre/docker-env
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdocker-env-install.sh
136 lines (118 loc) · 4.69 KB
/
docker-env-install.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
#!/usr/bin/env bash
###################################################################
# @Time : 08/01/2022 4:00 PM
# @Author : Fish
# @File : dockere-env.sh
# @github : https://github.com/iopssre
# @Role : install docker running environment
# @Version : 0.1
###################################################################
echo -ne "\\033[0;33m"
cat<<EOT
_oo0oo_
088888880
88" . "88
(| -_- |)
0\\ = /0
___/'---'\\___
.' \\\\\\\\| |// '.
/ \\\\\\\\||| : |||// \\\\
/_ ||||| -:- |||||- \\\\
| | \\\\\\\\\\\\ - /// | |
| \\_| ''\\---/'' |_/ |
\\ .-\\__ '-' __/-. /
___'. .' /--.--\\ '. .'___
."" '< '.___\\_<|>_/___.' >' "".
| | : '- \\'.;'\\ _ /';.'/ - ' : | |
\\ \\ '_. \\_ __\\ /__ _/ .-' / /
====='-.____'.___ \\_____/___.-'____.-'=====
'=---='
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Script Uses install docker running environment
Recommend OS Ubuntu 20.04 TLS
Support Team Move Chinese Community
Move Discord https://discord.gg/D7R2TtmkTm
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
EOT
echo -ne "\\033[m"
# usage note
function usage() {
cat <<END
usage: $0 OPTIONS
This script use install docker running environment.
OPTIONS:
install Install docker and docker compose
END
}
# check os version
function check_os_version() {
echo -e "\033[32m [INFO]: Check OS Version \033[0m"
version=$(grep "^PRETTY_NAME" /etc/os-release)
case $version in
*Ubuntu*)
echo -e "\033[32m [INFO]: Ubuntu is Support \033[0m"
;;
*)
echo -e "\033[32m [INFO]: OS is not Support \033[0m"
exit 1
;;
esac
}
# get docker-compose release
function get_docker_compose_release() {
curl --silent "https://api.github.com/repos/docker/compose/releases/latest" | grep -Po '"tag_name": "\K.*?(?=")'
}
# install docker
function install_docker() {
echo -e "\033[32m [INFO]: Start install docker \033[0m"
# remove old package
sudo apt remove --yes docker docker-engine docker.io containerd runc || true
# config gpg key
if [ ! -d /etc/apt/keyrings ]
then
sudo mkdir -p /etc/apt/keyrings
fi
if [ ! -f /etc/apt/keyrings/docker.gpg ]
then
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
fi
# seting repo
if [ ! -f /etc/apt/sources.list.d/docker.list ]
then
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
fi
# install docker
if [ ! -x "$(command -v docker)" ]
then
sudo apt update && sudo apt install --yes docker-ce docker-ce-cli containerd.io docker-compose-plugin
fi
}
# install docker-compose
function install_docker_compose() {
echo -e "\033[32m [INFO]: Start install docker-compose \033[0m"
# install docker-compose
if [ ! -x "$(command -v docker-compose)" ]
then
sudo curl -L https://github.com/docker/compose/releases/download/$(get_docker_compose_release)/docker-compose-$(uname -s)-$(uname -m) \
-o /usr/local/bin/docker-compose && chmod +x /usr/local/bin/docker-compose
fi
}
export -f install_docker
export -f install_docker_compose
# start install
case $1 in
install)
check_os_version
# install dependency packages
echo -e "\033[32m [INFO]: Install the base dependencies, here apt update will be time consuming \033[0m"
sudo apt-get update && DEBIAN_FRONTEND=noninteractive TZ=Etc/UTC \
&& apt-get install -y --no-install-recommends \
tzdata git ca-certificates curl build-essential libssl-dev pkg-config libclang-dev cmake jq
[ -x "$(command -v docker)" ] && echo -e "\033[33m [Warning]: Docker already exists,Skip installation \033[0m" || install_docker
[ -x "$(command -v docker-compose)" ] && echo -e "\033[33m [Warning]: Docker-compose already exists,Skip installation \033[0m" || install_docker_compose
;;
*)
usage
;;
esac