Skip to content
Snippets Groups Projects
Commit 68aa0a41 authored by Hahn Axel (hahn)'s avatar Hahn Axel (hahn)
Browse files

update docker init

parent 0d868629
No related branches found
No related tags found
1 merge request!14Update renderer class
......@@ -11,6 +11,9 @@
# 2022-12-20 v1.4 <axel.hahn@unibe.ch> replace fgrep with grep -F
# 2023-03-06 v1.5 <www.axel-hahn.de> up with and without --build
# 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 )
......@@ -19,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.6"
_version="1.9"
# ----------------------------------------------------------------------
# FUNCTIONS
......@@ -37,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 )
......@@ -189,6 +247,7 @@ function _removeGeneratedFiles(){
done
}
# show running containers
function _showContainers(){
local bLong=$1
h2 CONTAINERS
......@@ -200,7 +259,16 @@ function _showContainers(){
}
# a bit stupid ... i think I need to delete it.
# show urls for app container
function _showBrowserurl(){
echo "In a web browser open:"
echo " $frontendurl"
if grep "${APP_NAME}-server" /etc/hosts >/dev/null; then
echo " https://${APP_NAME}-server/"
fi
}
# detect + show ports and urls for app container and db container
function _showInfos(){
_showContainers long
h2 INFO
......@@ -212,19 +280,20 @@ function _showInfos(){
>/dev/tcp/localhost/${APP_PORT} 2>/dev/null && (
echo "OK, app port ${APP_PORT} is reachable"
echo
echo "In a web browser open:"
echo " $frontendurl"
_showBrowserurl
)
h3 "Check database port"
>/dev/tcp/localhost/${DB_PORT} 2>/dev/null && (
echo "OK, db port ${DB_PORT} is reachable"
echo
if [ "$DB_ADD" != "false" ]; then
h3 "Check database port"
>/dev/tcp/localhost/${DB_PORT} >/dev/null 2>&1 && (
echo "OK, db port ${DB_PORT} is reachable"
echo
)
echo "In a local DB admin tool:"
echo " host : localhost"
echo " port : ${DB_PORT}"
echo " user : root"
echo " password: ${MYSQL_ROOT_PASS}"
)
fi
echo
}
......@@ -235,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
......@@ -275,6 +331,8 @@ while true; do
fi
case "$action" in
"-h") showHelp; exit 0 ;;
"-v") echo $(basename $0) $_version; exit 0 ;;
g)
_removeGitdata
;;
......@@ -289,24 +347,19 @@ 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
echo "In a web browser:"
echo " $frontendurl"
_showBrowserurl
else
echo "ERROR: docker-compose up failed :-/"
docker-compose -p "$APP_NAME" logs | tail
......@@ -316,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 "Open app ..."
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
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment