1
1
#! /usr/bin/env bash
2
2
3
3
g_container_name=" memcached-" ${PORT}
4
+ g_expoter_container_name=" memcached-exporter-" ${EXPORTER_PORT}
4
5
g_start_args=" "
6
+ g_expoter_start_args=" "
5
7
g_docker_cmd=" ${SUDO_ALIAS} ${ENGINE} "
6
8
g_lsof_cmd=" ${SUDO_ALIAS} lsof"
7
9
g_rm_cmd=" ${SUDO_ALIAS} rm -rf"
@@ -28,7 +30,21 @@ precheck() {
28
30
container_id=` ${g_docker_cmd} ps --format " {{.ID}}" --filter name=${g_container_name} --all`
29
31
if [ " ${container_id} " ]; then
30
32
success " container [${g_container_name} ] already exists, skip\n"
31
- exit 0
33
+ exit 1
34
+ fi
35
+
36
+ if [ " ${EXPORTER_PORT} " ]; then
37
+ container_id=` ${g_docker_cmd} ps --format " {{.ID}}" --filter name=${g_expoter_container_name} --all`
38
+ if [ " ${container_id} " ]; then
39
+ success " container [${g_expoter_container_name} ] already exists, skip\n"
40
+ exit 1
41
+ fi
42
+
43
+ ${g_lsof_cmd} -i:${EXPORTER_PORT} >& /dev/null
44
+ if [ $? -eq 0 ]; then
45
+ die " port[${EXPORTER_PORT} ] is in use!\n"
46
+ exit 1
47
+ fi
32
48
fi
33
49
34
50
# check port
@@ -79,14 +95,25 @@ init() {
79
95
if [ " ${VERBOSE} " ]; then
80
96
g_start_args=" ${g_start_args} -${VERBOSE} "
81
97
fi
98
+
99
+
100
+ if [ " ${EXPORTER_PORT} " ]; then
101
+ g_expoter_start_args=" ${g_expoter_start_args} --memcached.address=${LISTEN} :${PORT} "
102
+ g_expoter_start_args=" ${g_expoter_start_args} --web.listen-address=${LISTEN} :${EXPORTER_PORT} "
103
+ fi
82
104
}
83
105
84
106
create_container () {
85
- success " create container [${g_container_name} ]\n"
86
107
${g_docker_cmd} create --name ${g_container_name} ${g_user} --network host ${g_volume_bind} ${IMAGE} memcached ${g_start_args} >& /dev/null
87
-
88
- success " start container [${g_container_name} ]\n"
108
+ success " create container [${g_container_name} ]\n"
109
+ if [ " ${EXPORTER_PORT} " ]; then
110
+ ${g_docker_cmd} create --name ${g_expoter_container_name} --network host ${EXPORTER_IMAGE} ${g_expoter_start_args} >& /dev/null
111
+ success " create container [${g_container_name} ]\n"
112
+ fi
89
113
${g_docker_cmd} start ${g_container_name} >& /dev/null
114
+ success " start container [${g_container_name} ]\n"
115
+ ${g_docker_cmd} start ${g_expoter_container_name} >& /dev/null
116
+ success " start container [${g_expoter_container_name} ]\n"
90
117
91
118
success " wait 3 seconds, check container status...\n"
92
119
sleep 3
@@ -95,14 +122,21 @@ create_container() {
95
122
if [ ${g_status} != " running" ]; then
96
123
exit 1
97
124
fi
125
+ if [ " ${EXPORTER_PORT} " ]; then
126
+ if [ ${g_expoter_status} != " running" ]; then
127
+ exit 1
128
+ fi
129
+ fi
98
130
}
99
131
100
132
get_status_container () {
101
133
g_status=` ${g_docker_cmd} inspect --format=' {{.State.Status}}' ${g_container_name} `
134
+ g_expoter_status=` ${g_docker_cmd} inspect --format=' {{.State.Status}}' ${g_expoter_container_name} `
102
135
}
103
136
104
137
show_info_container () {
105
138
${g_docker_cmd} ps --all --filter " name=${g_container_name} " --format=" table {{.ID}}\t{{.Names}}\t{{.Status}}"
139
+ ${g_docker_cmd} ps --all --filter " name=${g_expoter_container_name} " --format=" table {{.ID}}\t{{.Names}}\t{{.Status}}"
106
140
}
107
141
108
142
precheck
0 commit comments