TestEnv() { Check=$(which $1 2> /dev/null) if [[ -z ${Check} ]] then echo "$1 not found ... " exit 1 fi } Res() { if [[ $1 -eq 0 ]] then echo "$(tput setaf 2)OK$(tput sgr0)" else echo "$(tput setaf 1)FAILED$(tput sgr0)" fi } help () { echo " $0 [image/repo/esl/all] * image : Generate docker images * image-gen : Generate docker image for esl compilator * image-repo : Generate docker image for repository sync * repo : start docker compose and generate repositories * gen : start docker compose and generarte esl * all : Do everything * run-gen : Connect and run bash on instance gen * run-repo : Connect and run bash on instance repo * stop : stop all docker image " exit } DeleteFile() { echo -n "Delete Dockerfile ... : " [[ -f ${Wai}/Dockerfile ]] && rm Dockerfile || true Res $? } DockerConnect() { Inst=$(docker ps|grep $(dirname .)_esl\-$1 | awk '{print $NF}') docker exec -ti ${Inst} bash } DockerStop() { for DockerRun in $(docker ps|grep $(dirname .)_esl\- | awk '{print $NF}') do echo -n "Stop $DockerRun ... :" docker stop $DockerRun &> /dev/null Res $? done } DeleteImg () { DeleteFile echo -n "Delte old images $1 ... : " for var in $(docker image ls| grep "esl-$1" | awk '{print $3}'); do yes | docker image rm $var --force; done &> /dev/null Res $? } DockerGen() { DeleteImg $1 echo -n "generate Dockerfile $1 ... : " source define.conf while read line do if [[ ! -z $(echo $line | grep '\$') ]] then eval echo ${line} | sed "s#\[#\[\'#g" | sed "s#\]#\'\]#g" else echo $line fi done < Template/Dockerfile.$1 > Dockerfile Res $? echo -n "Generate $1 Docker image ... : " docker build --no-cache . -t esl-$1:${GenVers} 2>&1 | tee /tmp/BuildDocker-${1}.log &> /dev/null Res $? echo " ------ Log Compil ----------- /tmp/BuildDocker-${1}.log ----------------------------- " } DockerComposeRun () { [[ -f ${Wai}/docker-compose.yml ]] && rm -f ${Wai}/docker-compose.yml [[ "$2" == "Print" ]] && Print="-d" || Print="" cp ${Wai}/Template/docker-compose.yml.$1 ${Wai}/docker-compose.yml echo -n "Starting DOCKER $1 ... : " yes | docker-compose up ${Print} --remove-orphans 2>&1 | tee /tmp/RunDocker-${1}.log &> /dev/null Res $? echo " --------- Log Esl ----------- /tmp/RunDocker-${1}.log ----------------------------- " } GenAll () { DockerGen gen DockerGen repo }