diff --git a/docker/init.sh b/docker/init.sh index 9464d8757259adb4f7b1d772e24fca010e596797..464ea73cd693a8144abacdab1c7cabe552dbf2ef 100755 --- a/docker/init.sh +++ b/docker/init.sh @@ -25,6 +25,7 @@ # 2024-08-14 v1.18 <www.axel-hahn.de> update container view # 2024-09-20 v1.19 <www.axel-hahn.de> detect dockerd-rootless (hides menu item to set permissions) # 2024-10-16 v1.20 <axel.hahn@unibe.ch> add db import and export +# 2024-10-25 v1.21 <axel.hahn@unibe.ch> create missing subdir dbdumps # ====================================================================== cd "$( dirname "$0" )" || exit 1 @@ -38,7 +39,7 @@ _self=$( basename "$0" ) # shellcheck source=/dev/null . "${_self}.cfg" || exit 1 -_version="1.20" +_version="1.21" # git@git-repo.iml.unibe.ch:iml-open-source/docker-php-starterkit.git selfgitrepo="docker-php-starterkit.git" @@ -64,6 +65,8 @@ DC_CONFIG_CHANGED=0 DC_WEB_URL="" +DC_DUMP_DIR=dbdumps + isDockerRootless=0 ps -ef | grep dockerd-rootless | grep -q $USER && isDockerRootless=1 @@ -100,6 +103,13 @@ function _getStatus_docker(){ DC_DB_UP=0 grep -q "${APP_NAME}-server" <<< "$_out" && DC_WEB_UP=1 grep -q "${APP_NAME}-db" <<< "$_out" && DC_DB_UP=1 + + if [ $DC_DB_UP -eq 1 ] && [ ! -d "${DC_DUMP_DIR}" ]; then + echo "INFO: creating subdir ${DC_DUMP_DIR} to import/ export databases ..." + mkdir "${DC_DUMP_DIR}" || exit 1 + return +fi + } function _getWebUrl(){ @@ -164,7 +174,7 @@ function showMenu(){ if [ $DC_WEB_UP -eq 1 ] || [ $DC_DB_UP -eq 1 ] || [ $_bAll -eq 1 ]; then echo "${_spacer}$( _key s ) - shutdown containers docker-compose stop" echo - echo "${_spacer}$( _key i ) - Import more into infos" + echo "${_spacer}$( _key m ) - more infos" echo "${_spacer}$( _key o ) - open app [${APP_NAME}] $DC_WEB_URL" echo "${_spacer}$( _key c ) - console (bash)" fi @@ -516,7 +526,7 @@ function _dbDump(){ echo "Database container is not running. Aborting." return fi - outfile=dbdumps/${MYSQL_DB}_$( date +%Y%m%d_%H%M%S ).sql + outfile=${DC_DUMP_DIR}/${MYSQL_DB}_$( date +%Y%m%d_%H%M%S ).sql echo -n "dumping ${MYSQL_DB} ... " if docker exec -i "${APP_NAME}-db" mysqldump -uroot -p${MYSQL_ROOT_PASS} ${MYSQL_DB} > "$outfile"; then echo -n "OK ... Gzip ... " @@ -527,14 +537,14 @@ function _dbDump(){ # CLEANUP echo echo "--- Cleanup: keep $_iKeepDumps files." - ls -1t dbdumps/* | sed -n "$_iStart,\$p" | while read -r delfile + ls -1t ${DC_DUMP_DIR}/* | sed -n "$_iStart,\$p" | while read -r delfile do echo "CLEANUP: Deleting $delfile ... " rm -f "$delfile" done echo echo -n "Size of dump directory: " - du -hs dbdumps | awk '{ print $1 }' + du -hs ${DC_DUMP_DIR} | awk '{ print $1 }' else echo "ERROR" @@ -549,7 +559,7 @@ function _dbDump(){ # DB TOOL - import local database dump into container function _dbImport(){ echo "--- Available dumps:" - ls -ltr dbdumps/*.gz | sed "s#^# #g" + ls -ltr ${DC_DUMP_DIR}/*.gz | sed "s#^# #g" if [ $DC_DB_UP -eq 0 ]; then echo "Database container is not running. Aborting." return