@@ -20,23 +20,73 @@ color
2020catch_errors
2121
2222function update_script() {
23- header_info
24- check_container_storage
25- check_container_resources
26- if [[ ! -d /var ]]; then
27- msg_error " No ${APP} Installation Found!"
28- exit
29- fi
30- msg_info " Updating ${APP} LXC"
31- $STD apt-get update
32- $STD apt-get -y upgrade
33- msg_ok " Updated ${APP} LXC"
34- exit
23+ header_info
24+ check_container_storage
25+ check_container_resources
26+
27+ get_latest_release () {
28+ curl -fsSL https://api.github.com/repos/" $1 " /releases/latest | grep ' "tag_name":' | cut -d' "' -f4
29+ }
30+
31+ msg_info " Updating base system"
32+ $STD apt-get update
33+ $STD apt-get -y upgrade
34+ msg_ok " Base system updated"
35+
36+ msg_info " Updating Docker Engine"
37+ $STD apt-get install --only-upgrade -y docker-ce docker-ce-cli containerd.io
38+ msg_ok " Docker Engine updated"
39+
40+ if [[ -f /usr/local/lib/docker/cli-plugins/docker-compose ]]; then
41+ COMPOSE_BIN=" /usr/local/lib/docker/cli-plugins/docker-compose"
42+ COMPOSE_NEW_VERSION=$( get_latest_release " docker/compose" )
43+ msg_info " Updating Docker Compose to $COMPOSE_NEW_VERSION "
44+ curl -fsSL " https://github.com/docker/compose/releases/download/${COMPOSE_NEW_VERSION} /docker-compose-$( uname -s) -$( uname -m) " \
45+ -o " $COMPOSE_BIN "
46+ chmod +x " $COMPOSE_BIN "
47+ msg_ok " Docker Compose updated"
48+ fi
49+
50+ if docker ps -a --format ' {{.Names}}' | grep -q ' ^portainer$' ; then
51+ msg_info " Updating Portainer"
52+ docker pull portainer/portainer-ce:latest
53+ docker stop portainer && docker rm portainer
54+ docker volume create portainer_data > /dev/null 2>&1
55+ $STD docker run -d \
56+ -p 8000:8000 \
57+ -p 9443:9443 \
58+ --name=portainer \
59+ --restart=always \
60+ -v /var/run/docker.sock:/var/run/docker.sock \
61+ -v portainer_data:/data \
62+ portainer/portainer-ce:latest
63+ msg_ok " Updated Portainer"
64+ fi
65+
66+ if docker ps -a --format ' {{.Names}}' | grep -q ' ^portainer_agent$' ; then
67+ msg_info " Updating Portainer Agent"
68+ docker pull portainer/agent:latest
69+ docker stop portainer_agent && docker rm portainer_agent
70+ $STD docker run -d \
71+ -p 9001:9001 \
72+ --name=portainer_agent \
73+ --restart=always \
74+ -v /var/run/docker.sock:/var/run/docker.sock \
75+ -v /var/lib/docker/volumes:/var/lib/docker/volumes \
76+ portainer/agent
77+ msg_ok " Updated Portainer Agent"
78+ fi
79+
80+ msg_info " Cleaning up"
81+ $STD apt-get -y autoremove
82+ $STD apt-get -y autoclean
83+ msg_ok " Cleanup complete"
84+ exit
3585}
3686
3787start
3888build_container
3989description
4090
4191msg_ok " Completed Successfully!\n"
42- echo -e " ${CREATING}${GN}${APP} setup has been successfully initialized!${CL} "
92+ echo -e " ${CREATING}${GN}${APP} setup has been successfully initialized!${CL} "
0 commit comments