diff --git a/docker/init.sh b/docker/init.sh index 9c03b81b4017a351d1266627a28b2211716036bf..cf9a90d30e00e8b4bf3606e1edb63c14c9229983 100755 --- a/docker/init.sh +++ b/docker/init.sh @@ -13,6 +13,7 @@ # 2023-08-17 v1.6 <www.axel-hahn.de> menu selection with single key (without return) # 2023-11-10 v1.7 <axel.hahn@unibe.ch> replace docker-compose with "docker compose" # 2023-11-13 v1.8 <axel.hahn@unibe.ch> UNDO "docker compose"; update infos +# 2023-11-15 v1.9 <axel.hahn@unibe.ch> add help; execute multiple actions by params; new menu item: open app # ====================================================================== cd $( dirname $0 ) @@ -21,7 +22,7 @@ cd $( dirname $0 ) # git@git-repo.iml.unibe.ch:iml-open-source/docker-php-starterkit.git selfgitrepo="docker-php-starterkit.git" -_version="1.8" +_version="1.9" # ---------------------------------------------------------------------- # FUNCTIONS @@ -39,6 +40,61 @@ function h3(){ echo -e "\e[34m----- $*\e[0m" } +# show help for param -h +function showMenu(){ + echo " $( _key g ) - remove git data of starterkit" + echo + echo " $( _key i ) - init application: set permissions" + echo " $( _key t ) - generate files from templates" + echo " $( _key T ) - remove generated files" + echo + echo " $( _key u ) - startup containers docker-compose ... up -d" + echo " $( _key U ) - startup containers docker-compose ... up -d --build" + echo " $( _key s ) - shutdown containers docker-compose stop" + echo " $( _key r ) - remove containers docker-compose rm -f" + echo + echo " $( _key m ) - more infos" + echo " $( _key o ) - open app [${APP_NAME}] $frontendurl" + echo " $( _key c ) - console (bash)" + echo + echo " $( _key q ) - quit" +} +function showHelp(){ + local _self=$( basename "$0" ) + cat <<EOH +INITIALIZER FOR DOCKER APP v$_version + +A helper script written in Bash to bring up a PHP+Mysql application in docker. + +Source : https://git-repo.iml.unibe.ch/iml-open-source/docker-php-starterkit +Docs : https://os-docs.iml.unibe.ch/docker-php-starterkit/ +License: GNU GPL 3.0 +(c) Institute for Medical Education; University of Bern + + +SYNTAX: + $_self [-h|-v] + $_self [menu key] + +OPTIONS: + -h show this help and exit + -v show version exit + +MENU KEYS: + In the interactive menu are some keys to init an action. + The same keys can be put as parameter to start this action. + You can add multiples keys to apply multiple actions. + +$( showMenu ) + +EXAMPLES: + + $_self starts interactive mode + $_self u bring up docker container(s) and stay in interactive mode + $_self i q set write permissions and quit + +EOH +} # function _gitinstall(){ # h2 "install/ update app from git repo ${gitrepo} in ${gittarget} ..." # test -d ${gittarget} && ( cd ${gittarget} && git pull ) @@ -191,6 +247,7 @@ function _removeGeneratedFiles(){ done } +# show running containers function _showContainers(){ local bLong=$1 h2 CONTAINERS @@ -202,6 +259,7 @@ function _showContainers(){ } +# show urls for app container function _showBrowserurl(){ echo "In a web browser open:" echo " $frontendurl" @@ -210,7 +268,7 @@ function _showBrowserurl(){ fi } -# a bit stupid ... i think I need to delete it. +# detect + show ports and urls for app container and db container function _showInfos(){ _showContainers long h2 INFO @@ -246,39 +304,26 @@ function _key(){ # helper: wait for a return key function _wait(){ - echo -n "... press RETURN > "; read -r + echo -n "... press RETURN > "; read -r -t 15 } # ---------------------------------------------------------------------- # MAIN # ---------------------------------------------------------------------- -action=$1 +action=$1; shift 1 while true; do - echo - echo -e "\e[32m===== INITIALIZER FOR DOCKER APP [$APP_NAME] v$_version ===== \e[0m\n\r" if [ -z "$action" ]; then + echo + echo -e "\e[32m===== INITIALIZER FOR DOCKER APP [$APP_NAME] v$_version ===== \e[0m\n\r" + _showContainers - h2 MENU - echo " $( _key g ) - remove git data of starterkit" - echo - echo " $( _key i ) - init application: set permissions" - echo " $( _key t ) - generate files from templates" - echo " $( _key T ) - remove generated files" - echo - echo " $( _key u ) - startup containers docker-compose ... up -d" - echo " $( _key U ) - startup containers docker-compose ... up -d --build" - echo " $( _key s ) - shutdown containers docker-compose stop" - echo " $( _key r ) - remove containers docker-compose rm -f" - echo - echo " $( _key m ) - more infos" - echo " $( _key c ) - console (bash)" - echo - echo " $( _key q ) - quit" + h2 MENU + showMenu echo echo -n " select >" read -rn 1 action @@ -286,6 +331,8 @@ while true; do fi case "$action" in + "-h") showHelp; exit 0 ;; + "-v") echo $(basename $0) $_version; exit 0 ;; g) _removeGitdata ;; @@ -300,21 +347,17 @@ while true; do _removeGeneratedFiles rm -rf containers ;; - # not in the menu - # f) - # _removeGeneratedFiles - # _generateFiles - # _wait - # ;; m) _showInfos _wait ;; u|U) + h2 "Bring up..." dockerUp="docker-compose -p "$APP_NAME" --verbose up -d --remove-orphans" if [ "$action" = "U" ]; then dockerUp+=" --build" fi + echo "$dockerUp" if $dockerUp; then _showBrowserurl else @@ -326,24 +369,32 @@ while true; do _wait ;; s) + h2 "Stopping..." docker-compose -p "$APP_NAME" stop ;; r) + h2 "Removing..." docker-compose -p "$APP_NAME" rm -f ;; c) + h2 "Console" docker ps echo -n "id or name >" read dockerid test -z "$dockerid" || docker exec -it $dockerid /bin/bash ;; + o) + h2 "Console" + xdg-open "$frontendurl" + ;; q) + h2 "Bye!" exit 0; ;; *) test -n "$action" && ( echo " ACTION FOR [$action] NOT IMPLEMENTED."; sleep 1 ) esac - action= + action=$1; shift 1 done diff --git "a/docs/30_\360\237\224\206_Init_a_new_project.md" "b/docs/30_\360\237\252\204_Init_a_new_project.md" similarity index 100% rename from "docs/30_\360\237\224\206_Init_a_new_project.md" rename to "docs/30_\360\237\252\204_Init_a_new_project.md" diff --git "a/docs/50_\342\214\250\357\270\217_Usage.md" "b/docs/50_\342\214\250\357\270\217_Usage.md" new file mode 100644 index 0000000000000000000000000000000000000000..ddd4ec174c946dfc49191a07ed8c96198a1a4211 --- /dev/null +++ "b/docs/50_\342\214\250\357\270\217_Usage.md" @@ -0,0 +1,61 @@ +## Use docker init script + +### Interactive mode + +If you simply start the init.sh then you get an interactive mode. +There is a menu offerning a key and the description for its action. If an action is finished you get the menu again. + + + +### Command line parameters + +The script supports command line parameters to use it in scripts. Use `-h` to get a help: + +```txt +INITIALIZER FOR DOCKER APP v1.9 + +A helper script written in Bash to bring up a PHP+Mysql application in docker. + +Source : https://git-repo.iml.unibe.ch/iml-open-source/docker-php-starterkit +Docs : https://os-docs.iml.unibe.ch/docker-php-starterkit/ +License: GNU GPL 3.0 +(c) Institute for Medical Education; University of Bern + + +SYNTAX: + init.sh [-h|-v] + init.sh [menu key] + +OPTIONS: + -h show this help and exit + -v show version exit + +MENU KEYS: + In the interactive menu are some keys to init an action. + The same keys can be put as parameter to start this action. + You can add multiples keys to apply multiple actions. + + g - remove git data of starterkit + + i - init application: set permissions + t - generate files from templates + T - remove generated files + + u - startup containers docker-compose ... up -d + U - startup containers docker-compose ... up -d --build + s - shutdown containers docker-compose stop + r - remove containers docker-compose rm -f + + m - more infos + o - open app [my_new_app] http://localhost:8001/ + c - console (bash) + + q - quit + +EXAMPLES: + + init.sh starts interactive mode + init.sh u bring up docker container(s) and stay in interactive mode + init.sh i q set write permissions and quit + +``` \ No newline at end of file diff --git a/docs/_index.md b/docs/_index.md index e1e8a2be469556475d506218b86d17301698510c..13dd993d79b849cef175cf4106e4077a5e6a11fb 100644 --- a/docs/_index.md +++ b/docs/_index.md @@ -14,9 +14,3 @@ Free software and Open Source from University of Bern :: IML - Institute of Medi 📄 Source: <https://git-repo.iml.unibe.ch/iml-open-source/docker-php-starterkit> \ 📜 License: GNU GPL 3.0 \ 📖 Docs: <https://os-docs.iml.unibe.ch/docker-php-starterkit/> - -- - - - -## Screenshot ## - -