mirror of
https://github.com/10h30/ols-docker-env.git
synced 2026-05-12 15:21:24 +09:00
script update
This commit is contained in:
@@ -1,24 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
# create random password
|
||||
|
||||
if [ -z "$1" ]
|
||||
then
|
||||
echo "Missing arguments, exit"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
PASSWDDBnoQoutes="$(openssl rand -base64 12)"
|
||||
PASSWDDB="'$PASSWDDBnoQoutes'"
|
||||
SITE=$1
|
||||
|
||||
MAINDB="${SITE}_db"
|
||||
echo Database: $MAINDB
|
||||
echo Username: $MAINDB
|
||||
echo Password: $PASSWDDBnoQoutes
|
||||
any="'%'"
|
||||
|
||||
docker-compose exec mysql su -c 'apk add mysql-client'
|
||||
docker-compose exec mysql su -c 'mysql -uroot -ppassword -e "CREATE DATABASE '${MAINDB}' /*\!40100 DEFAULT CHARACTER SET utf8 */;"'
|
||||
docker-compose exec mysql su -c 'mysql -uroot -ppassword -e "CREATE USER '${MAINDB}'@${any} IDENTIFIED BY '${PASSWDDB}';"'
|
||||
docker-compose exec mysql su -c 'mysql -uroot -ppassword -e "GRANT ALL PRIVILEGES ON '${MAINDB}'.* TO '${MAINDB}'@${any};"'
|
||||
docker-compose exec mysql su -c "mysql -uroot -ppassword -e 'FLUSH PRIVILEGES;'"
|
||||
+115
@@ -0,0 +1,115 @@
|
||||
#!/usr/bin/env bash
|
||||
source .env
|
||||
echo "MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}"
|
||||
DOMAIN=''
|
||||
SQL_DB=''
|
||||
SQL_USER=''
|
||||
SQL_PASS=''
|
||||
ANY='%'
|
||||
|
||||
help_message(){
|
||||
echo 'Command [-domain xxx]'
|
||||
echo 'Command [-user xxx] [-password xxx] [-database xxx]'
|
||||
echo 'Example 1: database.sh -domain example.com'
|
||||
echo 'Example 2: domain.sh -user USERNAME -password PASSWORD -database DATABASENAME'
|
||||
echo 'Script will auto assign database & username by the domain and random password for example 1'
|
||||
}
|
||||
|
||||
check_input(){
|
||||
if [ -z "${1}" ]; then
|
||||
help_message
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
specify_name(){
|
||||
check_input ${SQL_USER}
|
||||
check_input ${SQL_PASS}
|
||||
check_input ${SQL_DB}
|
||||
}
|
||||
|
||||
auto_name(){
|
||||
SQL_DB=${TRANSNAME}
|
||||
SQL_USER=${TRANSNAME}
|
||||
SQL_PASS=${RANDOM_PASS}
|
||||
}
|
||||
|
||||
gen_pass(){
|
||||
RANDOM_PASS="$(openssl rand -base64 12)"
|
||||
}
|
||||
|
||||
trans_name(){
|
||||
TRANSNAME=$(echo ${1} | tr -d '.&&-')
|
||||
}
|
||||
|
||||
display_credential(){
|
||||
echo Database: ${SQL_DB}
|
||||
echo Username: ${SQL_USER}
|
||||
echo Password: ${SQL_PASS}
|
||||
exit 0
|
||||
}
|
||||
|
||||
add_sql_client(){
|
||||
docker-compose exec mysql su -c 'apk add mysql-client'
|
||||
}
|
||||
|
||||
check_db_access(){
|
||||
docker-compose exec mysql su -c "mysql -uroot -p${MYSQL_ROOT_PASSWORD} -e 'status'"
|
||||
if [ ${?} != 0 ]; then
|
||||
echo "DB access failed, please check!"
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
db_setup(){
|
||||
docker-compose exec mysql su -c "mysql -uroot -p${MYSQL_ROOT_PASSWORD} \
|
||||
-e 'CREATE DATABASE ${SQL_DB};' \
|
||||
-e 'GRANT ALL PRIVILEGES ON ${SQL_DB}.* TO ${SQL_USER}@${ANY} IDENTIFIED BY ${SQL_PASS};' \
|
||||
-e 'FLUSH PRIVILEGES;'"
|
||||
}
|
||||
|
||||
auto_setup_main(){
|
||||
check_input ${DOMAIN}
|
||||
gen_pass
|
||||
trans_name ${DOMAIN}
|
||||
auto_name
|
||||
db_setup
|
||||
display_credential
|
||||
}
|
||||
|
||||
specify_setup_main(){
|
||||
specify_name
|
||||
db_setup
|
||||
display_credential
|
||||
}
|
||||
|
||||
check_input ${1}
|
||||
while [ ! -z "${1}" ]; do
|
||||
case ${1} in
|
||||
-[hH] | -help | --help)
|
||||
help_message
|
||||
;;
|
||||
-d | -D | -domain) shift
|
||||
DOMAIN="${1}"
|
||||
;;
|
||||
-u | -U | -user) shift
|
||||
SQL_USER="${1}"
|
||||
;;
|
||||
-p | -P | -password) shift
|
||||
SQL_PASS="${1}"
|
||||
;;
|
||||
-db | -DB | -database) shift
|
||||
SQL_PDB="${1}"
|
||||
;;
|
||||
*)
|
||||
help_message
|
||||
;;
|
||||
esac
|
||||
shift
|
||||
done
|
||||
|
||||
if [ ${DOMAIN} = '' ]; then
|
||||
specify_setup_main
|
||||
else
|
||||
auto_setup_main
|
||||
fi
|
||||
+2
-2
@@ -3,8 +3,8 @@ CONT_NAME='litespeed'
|
||||
|
||||
help_message(){
|
||||
echo 'Command [-add|-del] [domain_name]'
|
||||
echo 'Example: domain.sh -add example.com'
|
||||
echo 'Example: domain.sh -del example.com'
|
||||
echo 'Example 1: domain.sh -add example.com'
|
||||
echo 'Example 2: domain.sh -del example.com'
|
||||
}
|
||||
|
||||
check_input(){
|
||||
|
||||
Executable → Regular
Reference in New Issue
Block a user