#!/bin/bash # vi: set tabstop=4 shiftwidth=4 expandtab : ROOTDIR=$(cd "$(dirname "$0")" && pwd) cd $ROOTDIR # \ # == Constants ============================================================== # # / DKRNAME=tools--phpmyadmin NAME=phpMyAdmin # \ # == Colors ================================================================= # # / CW="\033[1;37m" CG="\033[0;32m" CY="\033[0;33m" NC="\033[0m" II="${CW}╡${CG}ctrl${CW}╞${NC}" echo -e "${II} ${CY}Container CTRL Script ${CG}b20211219-0247${NC}" # \ # == Function =============================================================== # # / function main { case "$1" in 'start') fn_start ;; 'stop') fn_stop ;; 'restart') fn_stop && fn_start ;; 'logs') fn_logs ;; 'shell') fn_shell ;; 'backup') fn_backup ;; 'update') fn_update_config ;; *) echo -e "${II} Use: start, stop, restart, logs, shell, backup, update" ;; esac } # \ # == Fun:Container ========================================================== # # / function fn_start { if [ $(fn_container_check) = 1 ] then echo -e "${II} $NAME is runned." elif [ $(fn_container_check2) = 1 ] then echo -e "${II} $NAME container is down. Need restart." else echo -e "${II} Start $NAME container..." local CONTAINER_ID=$(podman run -d \ --name "$DKRNAME" \ --memory '512M' \ --volume /etc/timezone:/etc/timezone:ro \ --volume /etc/localtime:/etc/localtime:ro \ --publish "0.0.0.0:9091:80" \ --env 'PMA_ARBITRARY=1' \ phpmyadmin:5.1.1-apache ) echo $CONTAINER_ID fi } function fn_stop { if [ $(fn_container_check) = 1 ] then echo -e "${II} Stop $NAME container..." podman stop $DKRNAME fi if [ $(fn_container_check2) = 1 ] then echo -e "${II} Remove $NAME container..." local CONTAINER_ID=$(podman rm $DKRNAME) echo $CONTAINER_ID else echo -e "${II} $NAME not runned." fi } function fn_logs { if [ $(fn_container_check2) = 1 ] then podman logs --tail 10 -f $DKRNAME else echo -e "${II} $NAME not exists." fi } function fn_shell { if [ $(fn_container_check) = 1 ] then echo -e "${II} Enter shell in $NAME container..." podman exec -it $DKRNAME sh else echo -e "${II} $NAME not runned." fi } function fn_update_config { if [ $(fn_container_check) = 1 ] then echo -e "${II} Update config $NAME..." podman kill --signal=HUP $DKRNAME else echo -e "${II} $NAME not runned." fi } function fn_container_check { if [[ -n $(podman ps --filter "name=$DKRNAME" -q) ]] then echo 1 else echo 0 fi } function fn_container_check2 { if [[ -n $(podman ps --filter "name=$DKRNAME" -qa) ]] then echo 1 else echo 0 fi } # \ # == Other ================================================================== # # / function fn_backup { BASENAME=$(basename "$(cd "$(dirname "$0")" && pwd)") ARCHIVE=$BASENAME-$(date +%Y%m%d) echo -e "${II} Backup..." tar -cf - -- \ *.sh \ | 7z a -bso0 -si $ARCHIVE.tar.7z echo -e "${II} $(du -sh $ARCHIVE.tar.7z)" } main $@