From 0e4506403112423f6d66f45e0d07b3bac069abf2 Mon Sep 17 00:00:00 2001 From: Guillaume Astier Date: Sat, 11 Dec 2021 11:29:38 +0100 Subject: [PATCH] [UPADTE] - readme --- .gitignore | 4 + README.md | 115 +++++++++++----- {DockerFile => Template}/Dockerfile.gen | 4 +- {DockerFile => Template}/Dockerfile.repo | 0 .../docker-compose.yml.gen | 0 .../docker-compose.yml.repo | 0 Template/function | 126 +++++++++++++++++ generate_env.sh | 130 +----------------- 8 files changed, 219 insertions(+), 160 deletions(-) create mode 100644 .gitignore rename {DockerFile => Template}/Dockerfile.gen (97%) rename {DockerFile => Template}/Dockerfile.repo (100%) rename docker-compose.yml.gen => Template/docker-compose.yml.gen (100%) rename docker-compose.yml.repo => Template/docker-compose.yml.repo (100%) create mode 100755 Template/function diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..9588b86 --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +Dockerfile +data/ +docker-compose.yml + diff --git a/README.md b/README.md index 97efa3d..f1478d8 100644 --- a/README.md +++ b/README.md @@ -24,46 +24,97 @@ ``` -## Use - -### 1./ Build Docker image +## Help ``` -guillaume@virgile:~/centos79repo/$ ./generate_env.sh image +devbase-astierg@[navalgroup-astierg]- ~ : $ /data/DOCKER/centos79repo/generate_env.sh + +/data/DOCKER/centos79repo/generate_env.sh [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 + +``` + +## Config File + + +``` +devbase-astierg@[navalgroup-astierg]- ~ : $ cat /data/DOCKER/centos79repo/define.conf + +##################################### +# Repository generator + +# Version of image +RepoVers=1 +# Centos Version +CentOsVersion=7.9.2009 +# Sync repo script +Run=/bin/sync.sh +# Sync arg script +# * del : delete all local repo +# * debug : only start docker instance +# * empty : sync whithout delete +RunArg=del + +##################################### +# Esl compilator + +# Version of image +GenVers=1 +# Programme local directory +ProgrammeDir=/data/GIT/ESL_PRODUIT +# Repositories Directory +RepoDir=./data/repo +# If auto gen script esl Else leave empty and only start docker instance +GenScript=/data/gen.sh +``` + +## Build Everything. + +``` +devbase-astierg@[navalgroup-astierg]- ~ : $ time /data/DOCKER/centos79repo/generate_env.sh all Delete Dockerfile ... : OK -generate Dockerfile Esl compilator ... : OK -Generate compilator Docker image ... : OK -Delete Dockerfile ... : OK -generate Dockerfile CentOS REPO ... : OK -Generate Repo Docker image ... : OK +Delte old images gen ... : OK +generate Dockerfile gen ... : OK +Generate gen Docker image ... : OK ------ Log Compil ----------- -/tmp/DockerCompilatorGenerate.log -/tmp/DockerRepoGenerate.log +/tmp/BuildDocker-gen.log ----------------------------- -``` -### 2./ Start sync repositories t +Delete Dockerfile ... : OK +Delte old images repo ... : OK +generate Dockerfile repo ... : OK +Generate repo Docker image ... : OK -``` -guillaume@virgile:~/centos79repo$ docker-compose up -d -[+] Running 1/1 - ⠿ Container centos79repo-c7repo-1 Started +------ Log Compil ----------- +/tmp/BuildDocker-repo.log +----------------------------- + +Starting DOCKER repo ... : OK + +--------- Log Esl ----------- +/tmp/RunDocker-repo.log +----------------------------- + +Starting DOCKER gen ... : OK + +--------- Log Esl ----------- +/tmp/RunDocker-gen.log +----------------------------- + + +real 29m43,812s +user 0m3,405s +sys 0m0,579s ``` -### 3./ Wait ... for a long time :) - -while the process or the docker instance c7repo is/are running the download is running too ... -``` -guillaume@virgile:~/centos79repo$ ps axf | grep sync.sh| grep -v grep - 936675 ? Ss 0:00 \_ /bin/bash /bin/sync.sh -guillaume@virgile:~/centos79repo$ docker ps | grep c7re -44b350ff0c9d c7repo "/bin/sync.sh" About a minute ago Up About a minute centos79repo-c7repo-1 -``` - -### 4./ Check the dl - -You have log in ./data/log/ or each repositories (base, epel, extras, updates) - -The Repositories are in ./data/repo/ diff --git a/DockerFile/Dockerfile.gen b/Template/Dockerfile.gen similarity index 97% rename from DockerFile/Dockerfile.gen rename to Template/Dockerfile.gen index 6c161e0..843c895 100644 --- a/DockerFile/Dockerfile.gen +++ b/Template/Dockerfile.gen @@ -12,6 +12,6 @@ RUN yum install -y net-snmp COPY ./bin/run.sh /bin/run.sh RUN chmod 777 /bin/run.sh -#CMD [/bin/run.sh ${Run}] -CMD /bin/run.sh ${Run} +#CMD [/bin/run.sh ${GenScript}] +CMD /bin/run.sh ${GenScript} diff --git a/DockerFile/Dockerfile.repo b/Template/Dockerfile.repo similarity index 100% rename from DockerFile/Dockerfile.repo rename to Template/Dockerfile.repo diff --git a/docker-compose.yml.gen b/Template/docker-compose.yml.gen similarity index 100% rename from docker-compose.yml.gen rename to Template/docker-compose.yml.gen diff --git a/docker-compose.yml.repo b/Template/docker-compose.yml.repo similarity index 100% rename from docker-compose.yml.repo rename to Template/docker-compose.yml.repo diff --git a/Template/function b/Template/function new file mode 100755 index 0000000..9b7b1af --- /dev/null +++ b/Template/function @@ -0,0 +1,126 @@ +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 +} + diff --git a/generate_env.sh b/generate_env.sh index ffcdd28..c2f1202 100755 --- a/generate_env.sh +++ b/generate_env.sh @@ -1,141 +1,19 @@ #!/bin/bash -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 - -} Wai=$(realpath $(dirname $0)) +source ${Wai}/Template/function TestEnv realpath TestEnv docker TestEnv tput - - - cd ${Wai} -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 < DockerFile/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 () { - - [[ "$2" == "Print" ]] && Print="-d" || Print="" - echo -n "Starting DOCKER $1 ... : " - yes | docker-compose -f docker-compose.yml.$1 up ${Print} --remove-orphans 2>&1 | tee /tmp/RunDocker-${1}.log &> /dev/null - Res $? - echo " ---------- Log Esl ----------- -/tmp/RunDocker-${1}.log ------------------------------ -" -} - - Exec=$1 -GenAll () { - DockerGen gen - DockerGen repo -} - [[ -z "${Exec}" ]] && help [[ "${Exec}" == "image" ]] && GenAll [[ "${Exec}" == "image-gen" ]] && DockerGen gen @@ -144,9 +22,9 @@ GenAll () { -[[ "${Exec}" == "repo" ]] && DockerComposeRun repo Print +[[ "${Exec}" == "repo" ]] && DockerComposeRun repo [[ "${Exec}" == "stop" ]] && DockerStop -[[ "${Exec}" == "gen" ]] && DockerComposeRun gen Print +[[ "${Exec}" == "gen" ]] && DockerComposeRun gen [[ "${Exec}" == "run-gen" ]] && DockerConnect gen [[ "${Exec}" == "run-repo" ]] && DockerConnect repo @@ -154,7 +32,7 @@ GenAll () { if [[ "${Exec}" == "all" ]] then GenAll - DockerComposeRun repo Print + DockerComposeRun repo DockerComposeRun gen Print fi