[UPADTE] - readme

This commit is contained in:
Guillaume Astier 2021-12-11 11:29:38 +01:00
parent b1fb3753ad
commit 0e45064031
8 changed files with 219 additions and 160 deletions

4
.gitignore vendored Normal file
View File

@ -0,0 +1,4 @@
Dockerfile
data/
docker-compose.yml

119
README.md
View File

@ -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
-----------------------------
Delete Dockerfile ... : OK
Delte old images repo ... : OK
generate Dockerfile repo ... : OK
Generate repo Docker image ... : OK
------ 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
```
### 2./ Start sync repositories t
```
guillaume@virgile:~/centos79repo$ docker-compose up -d
[+] Running 1/1
⠿ Container centos79repo-c7repo-1 Started
```
### 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/

View File

@ -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}

126
Template/function Executable file
View File

@ -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
}

View File

@ -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