[UPADTE] - readme
This commit is contained in:
parent
b1fb3753ad
commit
0e45064031
4
.gitignore
vendored
Normal file
4
.gitignore
vendored
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
Dockerfile
|
||||||
|
data/
|
||||||
|
docker-compose.yml
|
||||||
|
|
||||||
115
README.md
115
README.md
@ -24,46 +24,97 @@
|
|||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
## Use
|
## Help
|
||||||
|
|
||||||
### 1./ Build Docker image
|
|
||||||
|
|
||||||
```
|
```
|
||||||
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
|
Delete Dockerfile ... : OK
|
||||||
generate Dockerfile Esl compilator ... : OK
|
Delte old images gen ... : OK
|
||||||
Generate compilator Docker image ... : OK
|
generate Dockerfile gen ... : OK
|
||||||
Delete Dockerfile ... : OK
|
Generate gen Docker image ... : OK
|
||||||
generate Dockerfile CentOS REPO ... : OK
|
|
||||||
Generate Repo Docker image ... : OK
|
|
||||||
|
|
||||||
------ Log Compil -----------
|
------ Log Compil -----------
|
||||||
/tmp/DockerCompilatorGenerate.log
|
/tmp/BuildDocker-gen.log
|
||||||
/tmp/DockerRepoGenerate.log
|
|
||||||
-----------------------------
|
-----------------------------
|
||||||
```
|
|
||||||
|
|
||||||
### 2./ Start sync repositories t
|
Delete Dockerfile ... : OK
|
||||||
|
Delte old images repo ... : OK
|
||||||
|
generate Dockerfile repo ... : OK
|
||||||
|
Generate repo Docker image ... : OK
|
||||||
|
|
||||||
```
|
------ Log Compil -----------
|
||||||
guillaume@virgile:~/centos79repo$ docker-compose up -d
|
/tmp/BuildDocker-repo.log
|
||||||
[+] Running 1/1
|
-----------------------------
|
||||||
⠿ Container centos79repo-c7repo-1 Started
|
|
||||||
|
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/
|
|
||||||
|
|
||||||
|
|||||||
@ -12,6 +12,6 @@ RUN yum install -y net-snmp
|
|||||||
|
|
||||||
COPY ./bin/run.sh /bin/run.sh
|
COPY ./bin/run.sh /bin/run.sh
|
||||||
RUN chmod 777 /bin/run.sh
|
RUN chmod 777 /bin/run.sh
|
||||||
#CMD [/bin/run.sh ${Run}]
|
#CMD [/bin/run.sh ${GenScript}]
|
||||||
CMD /bin/run.sh ${Run}
|
CMD /bin/run.sh ${GenScript}
|
||||||
|
|
||||||
126
Template/function
Executable file
126
Template/function
Executable 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
|
||||||
|
}
|
||||||
|
|
||||||
130
generate_env.sh
130
generate_env.sh
@ -1,141 +1,19 @@
|
|||||||
#!/bin/bash
|
#!/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))
|
Wai=$(realpath $(dirname $0))
|
||||||
|
|
||||||
|
source ${Wai}/Template/function
|
||||||
|
|
||||||
TestEnv realpath
|
TestEnv realpath
|
||||||
TestEnv docker
|
TestEnv docker
|
||||||
TestEnv tput
|
TestEnv tput
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
cd ${Wai}
|
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
|
Exec=$1
|
||||||
|
|
||||||
GenAll () {
|
|
||||||
DockerGen gen
|
|
||||||
DockerGen repo
|
|
||||||
}
|
|
||||||
|
|
||||||
[[ -z "${Exec}" ]] && help
|
[[ -z "${Exec}" ]] && help
|
||||||
[[ "${Exec}" == "image" ]] && GenAll
|
[[ "${Exec}" == "image" ]] && GenAll
|
||||||
[[ "${Exec}" == "image-gen" ]] && DockerGen gen
|
[[ "${Exec}" == "image-gen" ]] && DockerGen gen
|
||||||
@ -144,9 +22,9 @@ GenAll () {
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
[[ "${Exec}" == "repo" ]] && DockerComposeRun repo Print
|
[[ "${Exec}" == "repo" ]] && DockerComposeRun repo
|
||||||
[[ "${Exec}" == "stop" ]] && DockerStop
|
[[ "${Exec}" == "stop" ]] && DockerStop
|
||||||
[[ "${Exec}" == "gen" ]] && DockerComposeRun gen Print
|
[[ "${Exec}" == "gen" ]] && DockerComposeRun gen
|
||||||
[[ "${Exec}" == "run-gen" ]] && DockerConnect gen
|
[[ "${Exec}" == "run-gen" ]] && DockerConnect gen
|
||||||
[[ "${Exec}" == "run-repo" ]] && DockerConnect repo
|
[[ "${Exec}" == "run-repo" ]] && DockerConnect repo
|
||||||
|
|
||||||
@ -154,7 +32,7 @@ GenAll () {
|
|||||||
if [[ "${Exec}" == "all" ]]
|
if [[ "${Exec}" == "all" ]]
|
||||||
then
|
then
|
||||||
GenAll
|
GenAll
|
||||||
DockerComposeRun repo Print
|
DockerComposeRun repo
|
||||||
DockerComposeRun gen Print
|
DockerComposeRun gen Print
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user