Parcourir la source

Upgrade Seafile Pro to 6.3.4; use automated build; minor improvements

dennisro il y a 6 ans
Parent
commit
5d155b0e8d
2 fichiers modifiés avec 20 ajouts et 18 suppressions
  1. 1 4
      data/services/seafilepro/containers.sh
  2. 19 14
      data/services/seafilepro/seafilepro.sh

+ 1 - 4
data/services/seafilepro/containers.sh

@@ -9,11 +9,10 @@ seafilepro_db_dockerbunker() {
 		--env MYSQL_USER=${DBUSER} \
 		--env MYSQL_PASSWORD=${DBPASS} \
 	${IMAGES[db]} >/dev/null
-	exit_response
 
 	if [[ -z $keep_volumes ]];then
 		if ! docker exec seafilepro-db-dockerbunker mysqladmin ping -h"127.0.0.1" --silent;then
-			echo -en "\n\e[3m\xe2\x86\x92 Waiting for Seafile DB to be ready...\n"
+			echo -en "\n\e[3m\xe2\x86\x92 Waiting for Seafile DB to be ready...\n\n"
 			while ! docker exec seafilepro-db-dockerbunker mysqladmin ping -h"127.0.0.1" --silent;do
 				sleep 3
 			done
@@ -26,7 +25,6 @@ seafilepro_setup_dockerbunker() {
 		--name=${FUNCNAME[0]//_/-} \
 		--network=dockerbunker-${SERVICE_NAME} \
 		-v ${SERVICE_NAME}-data-vol-1:${volumes[${SERVICE_NAME}-data-vol-1]} \
-		-v "${BASE_DIR}"/data/services/seafilepro/seafile-license.txt \
 	${IMAGES[service]} $1
 }
 
@@ -37,6 +35,5 @@ seafilepro_service_dockerbunker() {
 		--network ${NETWORK} \
 		--network dockerbunker-seafilepro \
 		-v ${SERVICE_NAME}-data-vol-1:${volumes[${SERVICE_NAME}-data-vol-1]} \
-		-v "${BASE_DIR}"/data/services/seafilepro/seafile-license.txt \
 	${IMAGES[service]} >/dev/null
 }

+ 19 - 14
data/services/seafilepro/seafilepro.sh

@@ -18,14 +18,12 @@ declare -a containers=( "${SERVICE_NAME}-db-dockerbunker" "${SERVICE_NAME}-servi
 declare -a add_to_network=( "${SERVICE_NAME}-service-dockerbunker" )
 declare -A volumes=( [${SERVICE_NAME}-data-vol-1]="/seafile" [${SERVICE_NAME}-db-vol-1]="/var/lib/mysql" )
 declare -a networks=( "dockerbunker-${SERVICE_NAME}" )
-declare -A IMAGES=( [db]="mariadb:10.2" [service]="dockerbunker/${SERVICE_NAME}" )
-declare -A BUILD_IMAGES=( [dockerbunker/${SERVICE_NAME}]="${DOCKERFILES}/${SERVICE_NAME}" )
+declare -A IMAGES=( [db]="mariadb:10.3" [service]="chaosbunker/seafile-pro-docker" )
+current_version="6.3.4"
 
 [[ -z $1 ]] && options_menu
 
 upgrade() {
-	read -p "Please enter the Seafile Version number to upgrade to: " SF_VERSION
-
 	pull_and_compare
 
 	stop_containers
@@ -33,11 +31,18 @@ upgrade() {
 
 	docker_run seafilepro_db_dockerbunker
 
-	echo -e "\n\e[1mStarting up ${PROPER_NAME} upgrade container\e[0m" \
-		&& seafilepro_setup_dockerbunker "upgrade $SF_VERSION" \
-		&& exit_response
+	seafilepro_setup_dockerbunker "upgrade ${current_version}"
 
 	docker_run_all
+
+	[[ -z ${FILE_COMMENT_MIGRATED} ]] \
+		&& echo -e "\n\e[1mMigrate database table for file comments\e[0m" \
+		&& docker exec -it seafilepro-service-dockerbunker ./seahub.sh python-env seahub/manage.py migrate_file_comment \
+		&& exit_response \
+		&& echo "FILE_COMMENT_MIGRATED=1" >> "${ENV_DIR}"/${SERVICE_NAME}.env
+
+	echo -e "\n\e[1mRunning mysql_upgrade on all databases\e[0m"
+	docker exec -it seafilepro-db-dockerbunker mysql_upgrade -u root -p${DBROOT}
 }
 
 configure() {
@@ -59,25 +64,25 @@ configure() {
 	# ------------------------------
 	# General Settings
 	# ------------------------------
-	
+
 	PROPER_NAME="${PROPER_NAME}"
 	SERVICE_NAME=${SERVICE_NAME}
 	SSL_CHOICE=${SSL_CHOICE}
 	LE_EMAIL=${LE_EMAIL}
-	
+
 	SERVICE_DOMAIN=${SERVICE_DOMAIN}
 
 	# ------------------------------
 	# SQL database configuration
 	# ------------------------------
-	
+
 	DBUSER=seafile
-	
+
 	# Please use long, random alphanumeric strings (A-Za-z0-9)
 	DBROOT=$(</dev/urandom tr -dc A-Za-z0-9 | head -c 28)
 	DBPASS=$(</dev/urandom tr -dc A-Za-z0-9 | head -c 28)
 	EOF
-	
+
 	if [[ $OSTYPE =~ "darwin" ]];then
 		unset LC_ALL
 	fi
@@ -95,7 +100,7 @@ setup() {
 		&& echo -en "\n\e[1mStarting up ${PROPER_NAME} database container\e[0m" \
 		&& seafilepro_db_dockerbunker \
 		&& exit_response
-	
+
 	if [[ -z $keep_volumes ]];then
 		echo "Starting interactive Seafile Pro setup"
 		echo ""
@@ -105,7 +110,7 @@ setup() {
 		prompt_confirm "Display MySQL root and user passwords"
 		[[ $? == 0 ]] && echo -e "MySQL root password:   ${DBROOT}\nMySQL user password:   ${DBPASS}" || echo -e "\e[33mPlease obtain the MySQL root password from ${SERVICE_ENV}\e[0m\n"
 		echo ""
-	
+
 		echo -e "\n\e[1mStarting up ${PROPER_NAME} setup container\e[0m" \
 			&& docker_run seafilepro_db_dockerbunker \
 			&& seafilepro_setup_dockerbunker setup \