@@ -10,17 +10,9 @@ DOCKER_COMPOSE_OVERRIDE_YML=./compose-override.yml
1010
1111# Minimum Software Versions
1212COMPOSE_VERSION=" 3.6"
13- REQ_DOCKER_VERSION_MAJOR=18
14- REQ_DOCKER_VERSION_MINOR=2
15- REQ_DOCKER_VERSION_BUILD=0
16-
17- REQ_PYTHON_VERSION_MAJOR=3
18- REQ_PYTHON_VERSION_MINOR=6
19- REQ_PYTHON_VERSION_BUILD=9
20-
21- REQ_PYYAML_VERSION_MAJOR=5
22- REQ_PYYAML_VERSION_MINOR=3
23- REQ_PYYAML_VERSION_BUILD=1
13+ REQ_DOCKER_VERSION=18.2.0
14+ REQ_PYTHON_VERSION=3.6.9
15+ REQ_PYYAML_VERSION_=5.3.1
2416
2517declare -A cont_array=(
2618 [portainer]=" Portainer"
@@ -121,6 +113,37 @@ function command_exists() {
121113 command -v " $@ " > /dev/null 2>&1
122114}
123115
116+ function minimum_version_check() {
117+ # minimum_version_check required_version current_major current_minor current_build
118+ # minimum_version_check "1.2.3" 1 2 3
119+ REQ_MIN_VERSION_MAJOR=$( echo " $1 " | cut -d' ' -f 2 | cut -d' .' -f 1)
120+ REQ_MIN_VERSION_MINOR=$( echo " $1 " | cut -d' ' -f 2 | cut -d' .' -f 2)
121+ REQ_MIN_VERSION_BUILD=$( echo " $1 " | cut -d' ' -f 2 | cut -d' .' -f 3)
122+
123+ CURR_VERSION_MAJOR=$2
124+ CURR_VERSION_MINOR=$3
125+ CURR_VERSION_BUILD=$4
126+
127+ VERSION_GOOD=" false"
128+
129+ if [ " ${CURR_VERSION_MAJOR} " -ge $REQ_MIN_VERSION_MAJOR ]; then
130+ VERSION_GOOD=" true"
131+ fi
132+
133+ if [ " ${CURR_VERSION_MAJOR} " -ge $REQ_MIN_VERSION_MAJOR ] && \
134+ [ " ${CURR_VERSION_MINOR} " -ge $REQ_MIN_VERSION_MINOR ]; then
135+ VERSION_GOOD=" true"
136+ fi
137+
138+ if [ " ${CURR_VERSION_MAJOR} " -ge $REQ_MIN_VERSION_MAJOR ] && \
139+ [ " ${CURR_VERSION_MINOR} " -ge $REQ_MIN_VERSION_MINOR ] && \
140+ [ " ${CURR_VERSION_BUILD} " -ge $REQ_MIN_VERSION_BUILD ]; then
141+ VERSION_GOOD=" true"
142+ fi
143+
144+ echo " $VERSION_GOOD "
145+ }
146+
124147function install_python3_and_deps() {
125148 if (whiptail --title " Python 3 and Dependencies" --yesno " Python 3 (v3.6.9) or later, PyYaml 5.3.1 and pip3 is required for compose-overrides.yml file to merge into the docker-compose.yml file. Install now?" 20 78); then
126149 sudo apt install -y python3-pip python3-dev
@@ -151,9 +174,7 @@ function do_python3_pip() {
151174 PYTHON_VERSION_MINOR=$( echo " $PYTHON_VERSION " | cut -d' .' -f 2)
152175 PYTHON_VERSION_BUILD=$( echo " $PYTHON_VERSION " | cut -d' .' -f 3)
153176
154- if [ " ${PYTHON_VERSION_MAJOR} " -eq $REQ_PYTHON_VERSION_MAJOR ] && \
155- [ " ${PYTHON_VERSION_MINOR} " -eq $REQ_PYTHON_VERSION_MINOR ] && \
156- [ " ${PYTHON_VERSION_BUILD} " -ge $REQ_PYTHON_VERSION_BUILD ]; then
177+ if [ " $( minimum_version_check $REQ_PYTHON_VERSION $PYTHON_VERSION_MAJOR $PYTHON_VERSION_MINOR $PYTHON_VERSION_BUILD ) " == " true" ]; then
157178 PYTHON_VERSION_GOOD=" true"
158179 else
159180 echo " Python is outdated."
@@ -166,9 +187,7 @@ function do_python3_pip() {
166187 PYYAML_VERSION_MINOR=$( echo " $PYYAML_VERSION " | cut -d' .' -f 2)
167188 PYYAML_VERSION_BUILD=$( echo " $PYYAML_VERSION " | cut -d' .' -f 3)
168189
169- if [ " ${PYYAML_VERSION_MAJOR} " -ge $REQ_PYYAML_VERSION_MAJOR ] && \
170- [ " ${PYYAML_VERSION_MINOR} " -ge $REQ_PYYAML_VERSION_MINOR ] && \
171- [ " ${PYYAML_VERSION_BUILD} " -ge $REQ_PYYAML_VERSION_BUILD ]; then
190+ if [ " $( minimum_version_check $REQ_PYYAML_VERSION $PYYAML_VERSION_MAJOR $PYYAML_VERSION_MINOR $PYYAML_VERSION_BUILD ) " == " true" ]; then
172191 PYYAML_VERSION_GOOD=" true"
173192 else
174193 echo " PyYaml is outdated."
268287# ---------------------------------------------------------------------------------------------------
269288# Docker updates
270289echo " checking docker version"
271- SERVER_VERSION=$( docker version -f " {{.Server.Version}}" )
272- SERVER_VERSION_MAJOR=$( echo " $SERVER_VERSION " | cut -d' .' -f 1)
273- SERVER_VERSION_MINOR=$( echo " $SERVER_VERSION " | cut -d' .' -f 2)
274- SERVER_VERSION_BUILD=$( echo " $SERVER_VERSION " | cut -d' .' -f 3)
275-
276- if [ " ${SERVER_VERSION_MAJOR} " -ge $REQ_DOCKER_VERSION_MAJOR ] && \
277- [ " ${SERVER_VERSION_MINOR} " -ge $REQ_DOCKER_VERSION_MINOR ] && \
278- [ " ${SERVER_VERSION_BUILD} " -ge $REQ_DOCKER_VERSION_BUILD ]; then
279- echo " Docker version >= 18.2.0. You are good to go."
290+ DOCKER_VERSION=$( docker version -f " {{.Server.Version}}" )
291+ DOCKER_VERSION_MAJOR=$( echo " $DOCKER_VERSION " | cut -d' .' -f 1)
292+ DOCKER_VERSION_MINOR=$( echo " $DOCKER_VERSION " | cut -d' .' -f 2)
293+ DOCKER_VERSION_BUILD=$( echo " $DOCKER_VERSION " | cut -d' .' -f 3)
294+
295+ if [ " $( minimum_version_check $REQ_DOCKER_VERSION $DOCKER_VERSION_MAJOR $DOCKER_VERSION_MINOR $DOCKER_VERSION_BUILD ) " == " true" ]; then
296+ echo " Docker version >= $REQ_DOCKER_VERSION . You are good to go."
280297else
281- echo " "
282- echo " Docker version less than 18.02.0 consider upgrading or you may experience issues"
283- echo " Upgrade by typing: 'sudo apt upgrade docker docker-compose'"
284- sleep 2
298+ if (whiptail --title " Docker and Docker-Compose Version Issue" --yesno " Docker version is currently $DOCKER_VERSION which is less than $REQ_DOCKER_VERSION consider upgrading or you may experience issues. You can manually upgrade by typing 'sudo apt upgrade docker docker-compose'. Attempt to upgrade now?" 20 78); then
299+ sudo apt upgrade docker docker-compose
300+ fi
285301fi
286302
287303# ---------------------------------------------------------------------------------------------------
0 commit comments