Browse Source

Update functions

Dennis Rodewyk 1 year ago
parent
commit
dbaf5e4650

+ 3 - 8
data/include/functions/helper_functions.sh

@@ -153,19 +153,14 @@ collectAllImageNamesFromDockerComposeFile() {
 
 collectImageNamesAndCorrespondingSha256() {
 	[[ $DOCKER_COMPOSE ]] && collectAllImageNamesFromDockerComposeFile
-	for image in ${IMAGES[@]};do
-		image=${image//\"}
-		tag=${image#*:}
-		image=${image%%:*}
+	for container in "${containers[@]}";do
 		sha256=$(\
-			docker images --no-trunc \
-				| grep $image \
-				| grep $tag \
+			docker inspect --format='{{.Image}}' ${container} \
 				| awk '{for (i=1;i<=NF;i++){if ($i ~/^sha256/) {print $i}}}' \
 				| awk -F":" '{print $NF}'\
 			)
 		declare -gA test IMAGES_AND_SHA256
-		IMAGES_AND_SHA256[$image]+=$sha256
+		IMAGES_AND_SHA256[$container]+=$sha256
 	done
 }
 

+ 17 - 12
data/include/functions/menu_functions.sh

@@ -13,15 +13,20 @@ options_menu() {
 	# if service is marked as installed, make sure all containers exist and offer to run them if necessary
 	if elementInArray "${PROPER_NAME}" "${INSTALLED_SERVICES[@]}";then
 		for container in "${containers[@]}";do
-			RUNNING=$(docker ps -a -q --filter name=^/${container}$)
-			echo "Status: $RUNNING"
-			if [[ -z ${RUNNING} ]];then
+			RUNNING=$(docker ps -a -q --filter name=^/${container}$ --filter status=running)
+			EXITED=$(docker ps -a -q --filter name=^/${container}$ --filter status=exited)
+			[[ ${RUNNING} ]] && echo "Running: $RUNNING"
+			[[ ${EXITED} ]] &&  echo "Exited: $EXITED"
+			if [[ -z ${RUNNING} && -z ${EXITED} ]];then
 				echo -e "\n\e[3m$container container missing\e[0m\n"
 				missingContainers=( "$container" )
 				prompt_confirm "Restore $container?"
 				if [[ $? == 0 ]];then
 					restore_container
 				fi
+			elif [[ ${EXITED} ]];then
+				echo -e "\n\e[3mRestarting $container\e[0m\n"
+				docker restart ${container} >/dev/null 2>&1
 			fi
 			RUNNING=$(docker ps -a -q --filter name=^/${container}$)
 			[[ ${RUNNING} ]] && missingContainers=( "${missingContainers[@]}/$container" )
@@ -526,12 +531,12 @@ remove_ssl_certificate() {
 			&& echo -en "\n\e[1mRemoving SSL Certificates\e[0m" \
 			&& rm -r "${CONF_DIR}"/nginx/ssl/${SERVICE_DOMAIN[0]} \
 			&& exit_response
-		[[ -f "${CONF_DIR}"/nginx/ssl/letsencrypt/renewal/${SERVICE_DOMAIN[0]}.conf ]] \
-			&& rm "${CONF_DIR}"/nginx/ssl/letsencrypt/renewal/${SERVICE_DOMAIN[0]}.conf
-		[[ -d "${CONF_DIR}"/nginx/ssl/letsencrypt/archive/${SERVICE_DOMAIN[0]} ]] \
-			&& rm -r "${CONF_DIR}"/nginx/ssl/letsencrypt/archive/${SERVICE_DOMAIN[0]}
-		[[ -d "${CONF_DIR}"/nginx/ssl/letsencrypt/live/${SERVICE_DOMAIN[0]} ]] \
-			&& rm -r "${CONF_DIR}"/nginx/ssl/letsencrypt/live/${SERVICE_DOMAIN[0]}
+#		[[ -f "${CONF_DIR}"/nginx/ssl/letsencrypt/renewal/${SERVICE_DOMAIN[0]}.conf ]] \
+#			&& rm "${CONF_DIR}"/nginx/ssl/letsencrypt/renewal/${SERVICE_DOMAIN[0]}.conf
+#		[[ -d "${CONF_DIR}"/nginx/ssl/letsencrypt/archive/${SERVICE_DOMAIN[0]} ]] \
+#			&& rm -r "${CONF_DIR}"/nginx/ssl/letsencrypt/archive/${SERVICE_DOMAIN[0]}
+#		[[ -d "${CONF_DIR}"/nginx/ssl/letsencrypt/live/${SERVICE_DOMAIN[0]} ]] \
+#			&& rm -r "${CONF_DIR}"/nginx/ssl/letsencrypt/live/${SERVICE_DOMAIN[0]}
 	fi
 }
 
@@ -598,15 +603,15 @@ upgrade() {
 	pull_and_compare
 
 	stop_containers
+
 	remove_containers
 
 	docker_run_all
 
-	remove_from_STOPPED_SERVICES
-	
 	delete_old_images
-	
+
 	activate_nginx_conf
+	remove_from_STOPPED_SERVICES
 	
 	restart_nginx
 }

+ 12 - 3
data/include/functions/setup_functions.sh

@@ -25,6 +25,7 @@ docker_run_all() {
 }
 
 get_current_images_sha256() {
+	echo hello
 	# get current images' sha256
 	if [[ -z ${CURRENT_IMAGES_SHA256[@]} ]];then
 		collectImageNamesAndCorrespondingSha256
@@ -33,6 +34,7 @@ get_current_images_sha256() {
 			CURRENT_IMAGES_SHA256[$key]+=${IMAGES_AND_SHA256[$key]}
 		done
 	fi
+	echo ${CURRENT_IMAGES_SHA256[@]}
 	declare -p CURRENT_IMAGES_SHA256 >> "${BASE_DIR}"/.image_shas.tmp
 	unset IMAGES_AND_SHA256
 }
@@ -67,6 +69,8 @@ pull_and_compare() {
 	done
 
 	for key in "${!CURRENT_IMAGES_SHA256[@]}";do
+		echo Yo
+		echo ${CURRENT_IMAGES_SHA256[$key]}
 		if [[ ${CURRENT_IMAGES_SHA256[$key]} != ${NEW_IMAGES_SHA256[$key]} ]];then
 			old_images_to_delete+=( ${CURRENT_IMAGES_SHA256[$key]} )
 		else
@@ -94,10 +98,13 @@ pull_and_compare() {
 			&& missing_containers+=( $container )
 	done
 
+	echo "missing $missing_containers"
+	echo "del $old_images_to_delete"
+	echo "keep $unchanged_images_top_keep"
+	cat .image_shas.tmp
 	[[ -z ${old_images_to_delete[0]} ]] && [[ -z ${missing_containers[0]} ]] \
 		&& echo -e "\n\e[1mImage(s) did not change.\e[0m" \
-		&& rm "${BASE_DIR}"/.image_shas.tmp \
-		&& exit 0
+		&& rm "${BASE_DIR}"/.image_shas.tmp
 }
 
 delete_old_images() {
@@ -339,6 +346,7 @@ letsencrypt() {
 		[[ ( "${domains[@]}" =~ ${SERVICE_DOMAIN[0]} && ! "${domains[0]}" =~ "${SERVICE_DOMAIN[0]}" ) ]] && ( echo "Please list ${SERVICE_DOMAIN[0]} first.";exit 1 )
 			[[ "${domains[@]}" =~ ${SERVICE_DOMAIN[0]} ]] || ( echo -e "Please include your chosen ${PROPER_NAME} domain ${SERVICE_DOMAIN[0]}";exit 1 )
 			[[ ! -d "${CONF_DIR}"/nginx/ssl/letsencrypt ]] && mkdir "${CONF_DIR}"/nginx/ssl/letsencrypt
+		expand="--expand "
 		[[ ( "${domains[@]}" =~ "${SERVICE_DOMAIN[0]}" && "${domains[0]}" =~ "${SERVICE_DOMAIN[0]}" ) ]] \
 			&& echo "" \
 			&& docker run --rm -it --name=certbot \
@@ -370,7 +378,8 @@ letsencrypt() {
 		-v "${CONF_DIR}"/nginx/ssl/letsencrypt:/etc/letsencrypt \
 		-v "${BASE_DIR}"/data/web:/var/www/html:rw \
 		certbot/certbot \
-		renew
+		--webroot -w /var/www/html \
+		renew --cert-name $@
 	
 		restart_nginx
 	}