Просмотр исходного кода

fix: Update Nextcloud to new MariaDB

master
Bingen Eguzkitza 3 месяцев назад
Родитель
Сommit
41d285dfa8
1 измененных файлов: 18 добавлений и 16 удалений
  1. +18
    -16
      images/nextcloud/docker-entrypoint.sh

+ 18
- 16
images/nextcloud/docker-entrypoint.sh Просмотреть файл



function check_result { function check_result {
if [ $1 != 0 ]; then if [ $1 != 0 ]; then
echo "Error: $2";
echo "Error $1: $2";
exit 1; exit 1;
fi fi
} }
sleep 60 # to avoid hitting it while the first start for setting root pwd sleep 60 # to avoid hitting it while the first start for setting root pwd
R=111 R=111
while [ $R -eq 111 ]; do while [ $R -eq 111 ]; do
mysql -u root -p${MARIADB_ROOT_PASSWORD} -h ${DB_HOST} -e "SHOW DATABASES" 2> /dev/null;
mysql --skip-ssl -u root -p${MARIADB_ROOT_PASSWORD} -h ${DB_HOST} -e "SHOW DATABASES" 2> /dev/null;
R=$?; R=$?;
done done


# check if DB exists # check if DB exists
DB_EXISTS=$(mysql -u root -p${MARIADB_ROOT_PASSWORD} -h ${DB_HOST} -e "SHOW DATABASES" 2> /dev/null | grep ${NEXTCLOUD_DB_NAME})
DB_EXISTS=$(mysql --skip-ssl -u root -p${MARIADB_ROOT_PASSWORD} -h ${DB_HOST} -e "SHOW DATABASES" 2> /dev/null | grep ${NEXTCLOUD_DB_NAME})
echo "DB exists: ${DB_EXISTS}" echo "DB exists: ${DB_EXISTS}"


if [ -z "${DB_EXISTS}" ]; then if [ -z "${DB_EXISTS}" ]; then
echo "Creating Database" echo "Creating Database"
#mysql -u root -p${MARIADB_ROOT_PASSWORD} -h ${DB_HOST} -e "DROP DATABASE IF EXISTS ${NEXTCLOUD_DB_NAME};"
#mysql --skip-ssl -u root -p${MARIADB_ROOT_PASSWORD} -h ${DB_HOST} -e "DROP DATABASE IF EXISTS ${NEXTCLOUD_DB_NAME};"
#check_result $? "Dropping DB" #check_result $? "Dropping DB"
mysql -u root -p${MARIADB_ROOT_PASSWORD} -h ${DB_HOST} -e "CREATE DATABASE ${NEXTCLOUD_DB_NAME};"
mysql --skip-ssl -u root -p${MARIADB_ROOT_PASSWORD} -h ${DB_HOST} -e "CREATE DATABASE ${NEXTCLOUD_DB_NAME};"
check_result $? "Creating DB" check_result $? "Creating DB"
fi fi


echo "Creating User" echo "Creating User"
# 'IF EXISTS' for DROP USER is available from MariaDB 10.1.3 only # 'IF EXISTS' for DROP USER is available from MariaDB 10.1.3 only
mysql -u root -p${MARIADB_ROOT_PASSWORD} -h ${DB_HOST} -e "DROP USER ${NEXTCLOUD_DB_USER};" || echo "It seems it didn't exist"
mysql -u root -p${MARIADB_ROOT_PASSWORD} -h ${DB_HOST} -e "CREATE USER ${NEXTCLOUD_DB_USER} IDENTIFIED BY '${NEXTCLOUD_DB_PWD}';"
mysql --skip-ssl -u root -p${MARIADB_ROOT_PASSWORD} -h ${DB_HOST} -e "DROP USER ${NEXTCLOUD_DB_USER};" || echo "It seems it didn't exist"
mysql --skip-ssl -u root -p${MARIADB_ROOT_PASSWORD} -h ${DB_HOST} -e "CREATE USER ${NEXTCLOUD_DB_USER} IDENTIFIED BY '${NEXTCLOUD_DB_PWD}';"
check_result $? "Creating User" check_result $? "Creating User"
mysql -u root -p${MARIADB_ROOT_PASSWORD} -h ${DB_HOST} -e "GRANT ALL ON ${NEXTCLOUD_DB_NAME}.* TO ${NEXTCLOUD_DB_USER};"
mysql --skip-ssl -u root -p${MARIADB_ROOT_PASSWORD} -h ${DB_HOST} -e "GRANT ALL ON ${NEXTCLOUD_DB_NAME}.* TO ${NEXTCLOUD_DB_USER};"
check_result $? "Granting permissions" check_result $? "Granting permissions"
mysql -u root -p${MARIADB_ROOT_PASSWORD} -h ${DB_HOST} -e "FLUSH PRIVILEGES;"
mysql --skip-ssl -u root -p${MARIADB_ROOT_PASSWORD} -h ${DB_HOST} -e "FLUSH PRIVILEGES;"
check_result $? "Flushing privileges" check_result $? "Flushing privileges"


unset MARIADB_ROOT_PASSWORD unset MARIADB_ROOT_PASSWORD
# DB Backup # DB Backup
if [ ! -z "${DB_EXISTS}" -a ! -z "${NEXTCLOUD_DB_BACKUP}" -a -f "${NEXTCLOUD_DB_BACKUP}" ]; then if [ ! -z "${DB_EXISTS}" -a ! -z "${NEXTCLOUD_DB_BACKUP}" -a -f "${NEXTCLOUD_DB_BACKUP}" ]; then
echo "Restoring DB Backup..." echo "Restoring DB Backup..."
mysql -u ${NEXTCLOUD_DB_USER} -p${NEXTCLOUD_DB_PWD} -D ${NEXTCLOUD_DB_NAME} -h ${DB_HOST} < ${NEXTCLOUD_DB_BACKUP};
mysql --skip-ssl -u ${NEXTCLOUD_DB_USER} -p${NEXTCLOUD_DB_PWD} -D ${NEXTCLOUD_DB_NAME} -h ${DB_HOST} < ${NEXTCLOUD_DB_BACKUP};
check_result $? "Restoring DB" check_result $? "Restoring DB"

# empty oc_users table
# TODO: explain why
echo "Removing users"
mysql --skip-ssl -u ${NEXTCLOUD_DB_USER} -p${NEXTCLOUD_DB_PWD} -D ${NEXTCLOUD_DB_NAME} -h ${DB_HOST} -e "TRUNCATE TABLE oc_users;" || echo "Truncate oc_users failed";
# check_result $? "Truncating Users table"
mysql --skip-ssl -u ${NEXTCLOUD_DB_USER} -p${NEXTCLOUD_DB_PWD} -D ${NEXTCLOUD_DB_NAME} -h ${DB_HOST} -e "TRUNCATE TABLE oc_ldap_user_mapping;" || echo "Truncate oc_ldap_user_mapping failed";
#check_result $? "Truncating LDAP Users mapping table"
fi fi
# empty oc_users table
echo "Removing users"
mysql -u ${NEXTCLOUD_DB_USER} -p${NEXTCLOUD_DB_PWD} -D ${NEXTCLOUD_DB_NAME} -h ${DB_HOST} -e "TRUNCATE TABLE oc_users;";
check_result $? "Truncating Users table"
mysql -u ${NEXTCLOUD_DB_USER} -p${NEXTCLOUD_DB_PWD} -D ${NEXTCLOUD_DB_NAME} -h ${DB_HOST} -e "TRUNCATE TABLE oc_ldap_user_mapping;";
check_result $? "Truncating LDAP Users mapping table"


# ### Nextcloud config file ### # ### Nextcloud config file ###



Загрузка…
Отмена
Сохранить