[UPADTE] - refact code
This commit is contained in:
parent
b779db2d6d
commit
a042dea4fe
4
.env
4
.env
@ -1,6 +1,8 @@
|
|||||||
#####################################
|
#####################################
|
||||||
# Repository generator
|
# Repository generator
|
||||||
|
|
||||||
|
# Version of image
|
||||||
|
RepoVers=1
|
||||||
# Centos Version
|
# Centos Version
|
||||||
CentOsVersion=7.9.2009
|
CentOsVersion=7.9.2009
|
||||||
# Sync repo script
|
# Sync repo script
|
||||||
@ -14,6 +16,8 @@ RunArg=del
|
|||||||
#####################################
|
#####################################
|
||||||
# Esl compilator
|
# Esl compilator
|
||||||
|
|
||||||
|
# Version of image
|
||||||
|
GenVers=1
|
||||||
# Programme local directory
|
# Programme local directory
|
||||||
ProgrammeDir=/data/GIT/ESL_PRODUIT
|
ProgrammeDir=/data/GIT/ESL_PRODUIT
|
||||||
# Repositories Directory
|
# Repositories Directory
|
||||||
|
|||||||
Binary file not shown.
@ -2,7 +2,7 @@ FROM centos:centos7
|
|||||||
LABEL maintainer='Guillaume Astier Ruiz'
|
LABEL maintainer='Guillaume Astier Ruiz'
|
||||||
|
|
||||||
ENV os='centos'
|
ENV os='centos'
|
||||||
osversion='7'
|
ENV osversion='7'
|
||||||
|
|
||||||
RUN yum install -y perl perl-Business-ISBN perl-Business-ISBN-Data perl-Carp perl-Compress-Raw-Bzip2 perl-Compress-Raw-Zlib perl-Data-Dumper perl-Data-OptList perl-Digest perl-Digest-MD5 perl-Encode perl-Encode-Locale perl-Error perl-Exporter perl-ExtUtils-Install perl-ExtUtils-MakeMaker perl-ExtUtils-Manifest perl-ExtUtils-ParseXS perl-File-Listing perl-File-Path perl-File-Temp perl-Filter perl-Font-AFM perl-Getopt-Long perl-HTML-Format perl-HTML-Parser perl-HTML-Tagset perl-HTML-Tree perl-HTTP-Cookies perl-HTTP-Daemon perl-HTTP-Date perl-HTTP-Message perl-HTTP-Negotiate perl-HTTP-Tiny perl-IO-Compress perl-IO-HTML perl-IO-Socket-IP perl-IO-Socket-SSL perl-IO-stringy perl-LWP-MediaTypes perl-Module-Implementation perl-Module-Runtime perl-Mozilla-CA perl-Net-HTTP perl-Net-LibIDN perl-Net-SSLeay perl-Package-Generator perl-PadWalker perl-Params-Util perl-Params-Validate perl-PathTools perl-Pod-Escapes perl-Pod-Perldoc perl-Pod-Simple perl-Pod-Usage perl-Scalar-List-Utils perl-Socket perl-Storable perl-Sub-Exporter perl-Sub-Install perl-TermReadKey perl-Test-Harness perl-Text-ParseWords perl-Thread-Queue perl-Time-HiRes perl-Time-Local perl-TimeDate perl-Tk perl-Try-Tiny perl-URI perl-WWW-RobotRules perl-XML-Catalog perl-XML-DOM perl-XML-Dumper perl-XML-Filter-BufferText perl-XML-Grove perl-XML-Handler-YAWriter perl-XML-LibXML perl-XML-LibXSLT perl-XML-NamespaceSupport perl-XML-Parser perl-XML-RegExp perl-XML-SAX perl-XML-SAX-Base perl-XML-SAX-Writer perl-XML-Simple perl-XML-TokeParser perl-XML-TreeBuilder perl-XML-Twig perl-XML-Writer perl-XML-XPath perl-XML-XPathEngine perl-constant perl-devel perl-libs perl-libwww-perl perl-libxml-perl perl-macros perl-parent perl-podlators perl-srpm-macros perl-threads perl-threads-shared
|
RUN yum install -y perl perl-Business-ISBN perl-Business-ISBN-Data perl-Carp perl-Compress-Raw-Bzip2 perl-Compress-Raw-Zlib perl-Data-Dumper perl-Data-OptList perl-Digest perl-Digest-MD5 perl-Encode perl-Encode-Locale perl-Error perl-Exporter perl-ExtUtils-Install perl-ExtUtils-MakeMaker perl-ExtUtils-Manifest perl-ExtUtils-ParseXS perl-File-Listing perl-File-Path perl-File-Temp perl-Filter perl-Font-AFM perl-Getopt-Long perl-HTML-Format perl-HTML-Parser perl-HTML-Tagset perl-HTML-Tree perl-HTTP-Cookies perl-HTTP-Daemon perl-HTTP-Date perl-HTTP-Message perl-HTTP-Negotiate perl-HTTP-Tiny perl-IO-Compress perl-IO-HTML perl-IO-Socket-IP perl-IO-Socket-SSL perl-IO-stringy perl-LWP-MediaTypes perl-Module-Implementation perl-Module-Runtime perl-Mozilla-CA perl-Net-HTTP perl-Net-LibIDN perl-Net-SSLeay perl-Package-Generator perl-PadWalker perl-Params-Util perl-Params-Validate perl-PathTools perl-Pod-Escapes perl-Pod-Perldoc perl-Pod-Simple perl-Pod-Usage perl-Scalar-List-Utils perl-Socket perl-Storable perl-Sub-Exporter perl-Sub-Install perl-TermReadKey perl-Test-Harness perl-Text-ParseWords perl-Thread-Queue perl-Time-HiRes perl-Time-Local perl-TimeDate perl-Tk perl-Try-Tiny perl-URI perl-WWW-RobotRules perl-XML-Catalog perl-XML-DOM perl-XML-Dumper perl-XML-Filter-BufferText perl-XML-Grove perl-XML-Handler-YAWriter perl-XML-LibXML perl-XML-LibXSLT perl-XML-NamespaceSupport perl-XML-Parser perl-XML-RegExp perl-XML-SAX perl-XML-SAX-Base perl-XML-SAX-Writer perl-XML-Simple perl-XML-TokeParser perl-XML-TreeBuilder perl-XML-Twig perl-XML-Writer perl-XML-XPath perl-XML-XPathEngine perl-constant perl-devel perl-libs perl-libwww-perl perl-libxml-perl perl-macros perl-parent perl-podlators perl-srpm-macros perl-threads perl-threads-shared
|
||||||
RUN yum install -y basesystem binutils bzip2 cpp createrepo dejavu-fonts-common dejavu-sans-fonts deltarpm dwz elfutils elfutils-devel elfutils-libelf-devel fontconfig fontpackages-filesystem gcc gdb gdbm-devel genisoimage glibc-devel glibc-headers gpm-libs groff-base keyutils-libs-devel libX11 libX11-common libXau libXft libXrender libcom_err-devel libdb-devel libjpeg-turbo libmpc libselinux-devel libsepol-devel libusal libverto-devel libxcb libxml2-python lm_sensors-devel lm_sensors-libs mailcap mpfr ncurses-base net-tools openssl-devel pcre-devel popt-devel pyparsing python-deltarpm python-gobject-base python-srpm-macros redhat-rpm-config rpm-build rpm-devel rsync strace tcp_wrappers-devel tree unzip vim-common vim-enhanced vim-filesystem xz-devel zip zlib-devel nginx openssh-clients
|
RUN yum install -y basesystem binutils bzip2 cpp createrepo dejavu-fonts-common dejavu-sans-fonts deltarpm dwz elfutils elfutils-devel elfutils-libelf-devel fontconfig fontpackages-filesystem gcc gdb gdbm-devel genisoimage glibc-devel glibc-headers gpm-libs groff-base keyutils-libs-devel libX11 libX11-common libXau libXft libXrender libcom_err-devel libdb-devel libjpeg-turbo libmpc libselinux-devel libsepol-devel libusal libverto-devel libxcb libxml2-python lm_sensors-devel lm_sensors-libs mailcap mpfr ncurses-base net-tools openssl-devel pcre-devel popt-devel pyparsing python-deltarpm python-gobject-base python-srpm-macros redhat-rpm-config rpm-build rpm-devel rsync strace tcp_wrappers-devel tree unzip vim-common vim-enhanced vim-filesystem xz-devel zip zlib-devel nginx openssh-clients
|
||||||
@ -12,5 +12,5 @@ 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 ${Run}]
|
||||||
|
|
||||||
@ -2,7 +2,7 @@ FROM centos:${CentOsVersion}
|
|||||||
LABEL maintainer='Guillaume Astier Ruiz'
|
LABEL maintainer='Guillaume Astier Ruiz'
|
||||||
|
|
||||||
ENV os='centos'
|
ENV os='centos'
|
||||||
osversion='7'
|
ENV osversion='7'
|
||||||
|
|
||||||
|
|
||||||
RUN yum install yum-utils createrepo vim wget -y
|
RUN yum install yum-utils createrepo vim wget -y
|
||||||
@ -12,4 +12,4 @@ RUN chmod 755 /bin/sync.sh
|
|||||||
COPY ./bin/empty.sh /bin/empty.sh
|
COPY ./bin/empty.sh /bin/empty.sh
|
||||||
RUN chmod 755 /bin/empty.sh
|
RUN chmod 755 /bin/empty.sh
|
||||||
|
|
||||||
CMD ["${Run} ${RunArg}"]
|
CMD [${Run} ${RunArg}]
|
||||||
|
|||||||
48
README.md
48
README.md
@ -4,38 +4,46 @@
|
|||||||
|
|
||||||
```
|
```
|
||||||
.
|
.
|
||||||
|
.
|
||||||
├── bin
|
├── bin
|
||||||
|
│ ├── empty.sh
|
||||||
|
│ ├── run.sh
|
||||||
│ └── sync.sh
|
│ └── sync.sh
|
||||||
├── data
|
├── define.conf -> .env
|
||||||
│ ├── log
|
├── docker-compose.yml.esl
|
||||||
│ └── repo
|
├── docker-compose.yml.repo
|
||||||
├── docker-compose.yml
|
├── Dockerfile
|
||||||
└── Dockerfile
|
├── DockerFile
|
||||||
└── README.md
|
│ ├── Dockerfile.esl
|
||||||
|
│ └── Dockerfile.repo
|
||||||
|
├── generate_env.sh
|
||||||
|
├── README.md
|
||||||
|
└── template
|
||||||
|
|
||||||
4 directories, 4 files
|
3 directories, 10 files
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
## Use
|
## Use
|
||||||
|
|
||||||
### 1./ Build Docker image : c7repo
|
### 1./ Build Docker image
|
||||||
|
|
||||||
```
|
```
|
||||||
guillaume@virgile:~/centos79repo/$ docker build . -t c7repo
|
guillaume@virgile:~/centos79repo/$ ./generate_env.sh image
|
||||||
Sending build context to Docker daemon 7.68kB
|
Delete Dockerfile ... : OK
|
||||||
Step 1/10 : FROM centos:7.9.2009
|
generate Dockerfile Esl compilator ... : OK
|
||||||
---> eeb6ee3f44bd
|
Generate compilator Docker image ... : OK
|
||||||
[...]
|
Delete Dockerfile ... : OK
|
||||||
Step 10/10 : CMD ["/bin/sync.sh"]
|
generate Dockerfile CentOS REPO ... : OK
|
||||||
---> Running in 8ea78a88d33d
|
Generate Repo Docker image ... : OK
|
||||||
Removing intermediate container 8ea78a88d33d
|
|
||||||
---> be87c9d3dc38
|
------ Log Compil -----------
|
||||||
Successfully built be87c9d3dc38
|
/tmp/DockerCompilatorGenerate.log
|
||||||
Successfully tagged c7repo:latest
|
/tmp/DockerRepoGenerate.log
|
||||||
|
-----------------------------
|
||||||
```
|
```
|
||||||
|
|
||||||
### 2./ Start sync with docker compose
|
### 2./ Start sync repositories t
|
||||||
|
|
||||||
```
|
```
|
||||||
guillaume@virgile:~/centos79repo$ docker-compose up -d
|
guillaume@virgile:~/centos79repo$ docker-compose up -d
|
||||||
|
|||||||
@ -3,7 +3,7 @@ version: '2'
|
|||||||
|
|
||||||
services:
|
services:
|
||||||
compil:
|
compil:
|
||||||
image: esl-compilator
|
image: esl-compilator:${GenVers}
|
||||||
volumes:
|
volumes:
|
||||||
- ${ProgrammeDir}:/data
|
- ${ProgrammeDir}:/data
|
||||||
- ${RepoDir}:/data/distributions
|
- ${RepoDir}:/data/distributions
|
||||||
|
|||||||
@ -3,7 +3,7 @@ version: '2'
|
|||||||
|
|
||||||
services:
|
services:
|
||||||
c7repo:
|
c7repo:
|
||||||
image: c7repo
|
image: c7repo:${RepoVers}
|
||||||
volumes:
|
volumes:
|
||||||
- ./data:/data
|
- ./data:/data
|
||||||
|
|
||||||
|
|||||||
@ -28,6 +28,8 @@ help () {
|
|||||||
$0 [image/repo/esl/all]
|
$0 [image/repo/esl/all]
|
||||||
|
|
||||||
* image : Generate docker images
|
* 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
|
* repo : start docker compose and generate repositories
|
||||||
* esl : start docker compose and generarte esl
|
* esl : start docker compose and generarte esl
|
||||||
* all : Do everything
|
* all : Do everything
|
||||||
@ -46,116 +48,90 @@ TestEnv docker
|
|||||||
TestEnv tput
|
TestEnv tput
|
||||||
|
|
||||||
|
|
||||||
LogDockerCompilatorGenerate=/tmp/DockerCompilatorGenerate.log
|
|
||||||
LogDockerRepoGenerate=/tmp/DockerRepoGenerate.log
|
|
||||||
LogDockerCompilatorRun=/tmp/DockerCompilatorRun.log
|
|
||||||
LogDockerRepoRun=/tmp/DockerRepoRun.log
|
|
||||||
|
|
||||||
|
|
||||||
cd ${Wai}
|
cd ${Wai}
|
||||||
|
|
||||||
|
DeleteFile() {
|
||||||
|
|
||||||
DockerGen() {
|
|
||||||
echo -n "Delete Dockerfile ... : "
|
echo -n "Delete Dockerfile ... : "
|
||||||
[[ -f ${Wai}/Dockerfile ]] && rm Dockerfile || true
|
[[ -f ${Wai}/Dockerfile ]] && rm Dockerfile || true
|
||||||
Res $?
|
Res $?
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
echo -n "generate Dockerfile Esl compilator ... : "
|
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
|
source define.conf
|
||||||
while read line
|
while read line
|
||||||
do
|
do
|
||||||
if [[ ! -z $(echo "$line" | grep '\$') ]]
|
if [[ ! -z $(echo $line | grep '\$') ]]
|
||||||
then
|
then
|
||||||
eval echo "${line}"
|
eval echo ${line} | sed "s#\[#\[\'#g" | sed "s#\]#\'\]#g"
|
||||||
else
|
else
|
||||||
echo $line
|
echo $line
|
||||||
fi
|
fi
|
||||||
done < DockerFile/Dockerfile.esl > Dockerfile
|
done < DockerFile/Dockerfile.$1 > Dockerfile
|
||||||
Res $?
|
Res $?
|
||||||
|
|
||||||
echo -n "Delete Dockerfile ... : "
|
echo -n "Generate $1 Docker image ... : "
|
||||||
[[ -f ${Wai}/Dockerfile ]] && rm Dockerfile || true
|
docker build --no-cache . -t esl-$1:${GenVers} 2>&1 | tee /tmp/BuildDocker-${1}.log &> /dev/null
|
||||||
Res $?
|
|
||||||
|
|
||||||
|
|
||||||
echo -n "Generate compilator Docker image ... : "
|
|
||||||
docker build . -t esl-compilator 2>&1 | tee $LogDockerCompilatorGenerate &> /dev/null
|
|
||||||
Res $?
|
|
||||||
|
|
||||||
echo -n "generate Dockerfile CentOS REPO ... : "
|
|
||||||
while read line
|
|
||||||
do
|
|
||||||
if [[ ! -z $(echo "$line" | grep '\$') ]]
|
|
||||||
then
|
|
||||||
eval echo "${line}"
|
|
||||||
else
|
|
||||||
echo $line
|
|
||||||
fi
|
|
||||||
done < DockerFile/Dockerfile.repo > Dockerfile
|
|
||||||
Res $?
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
echo -n "Generate Repo Docker image ... : "
|
|
||||||
docker build . -t c7repo 2>&1 | tee $LogDockerRepoGenerate &> /dev/null
|
|
||||||
Res $?
|
Res $?
|
||||||
|
|
||||||
echo "
|
echo "
|
||||||
------ Log Compil -----------
|
------ Log Compil -----------
|
||||||
$LogDockerCompilatorGenerate
|
/tmp/BuildDocker-${1}.log
|
||||||
$LogDockerRepoGenerate
|
|
||||||
-----------------------------
|
-----------------------------
|
||||||
"
|
"
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
DockerComposeRunEsl () {
|
DockerComposeRun () {
|
||||||
[[ $1 == "Print" ]] && Print="" || Print="-d"
|
[[ $2 == "Print" ]] && Print="" || Print="-d"
|
||||||
echo -n "Starting ESL COMPILATOR ... : "
|
echo -n "Starting DOCKER $1 ... : "
|
||||||
docker-compose -f docker-compose.yml.esl up ${Print} --remove-orphans 2>&1 ${LogDockerCompilatorRun} &> /dev/null
|
docker-compose -f docker-compose.yml.$1 up ${Print} --remove-orphans 2>&1 | tee /tmp/RunDocker-${1}.log &> /dev/null
|
||||||
Res $?
|
Res $?
|
||||||
echo "
|
echo "
|
||||||
--------- Log Esl -----------
|
--------- Log Esl -----------
|
||||||
$LogDockerCompilatorRun
|
/tmp/RunDocker-${1}.log
|
||||||
-----------------------------
|
-----------------------------
|
||||||
"
|
"
|
||||||
}
|
}
|
||||||
|
|
||||||
DockerComposeRunRepo () {
|
|
||||||
echo -n "Starting Repo Sync ... : "
|
|
||||||
echo "docker-compose -f docker-compose.yml.repo up --remove-orphans ${Print} "
|
|
||||||
exit
|
|
||||||
docker-compose -f docker-compose.yml.repo up --remove-orphans ${Print} 2>&1 ${LogDockerRepoRun} &> /dev/null
|
|
||||||
Res $?
|
|
||||||
echo "
|
|
||||||
-------- Log Repo -----------
|
|
||||||
$LogDockerRepoRun
|
|
||||||
-----------------------------
|
|
||||||
"
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
Exec=$1
|
Exec=$1
|
||||||
|
|
||||||
|
GenAll () {
|
||||||
|
DockerGen gen
|
||||||
|
DockerGen repo
|
||||||
|
}
|
||||||
|
|
||||||
[[ -z "${Exec}" ]] && help
|
[[ -z "${Exec}" ]] && help
|
||||||
[[ "${Exec}" == "image" ]] && DockerGen
|
[[ "${Exec}" == "image" ]] && GenAll
|
||||||
|
[[ "${Exec}" == "image-gen" ]] && DockerGen gen
|
||||||
|
[[ "${Exec}" == "image-repo" ]] && DockerGen repo
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
[[ "${Exec}" == "repo" ]] && DockerComposeRunRepo
|
|
||||||
[[ "${Exec}" == "esl" ]] && DockerComposeRunEsl
|
[[ "${Exec}" == "repo" ]] && DockerComposeRun repo
|
||||||
|
[[ "${Exec}" == "gen" ]] && DockerComposeRun gen
|
||||||
|
|
||||||
|
|
||||||
if [[ "${Exec}" == "all" ]]
|
if [[ "${Exec}" == "all" ]]
|
||||||
then
|
then
|
||||||
DockerGen
|
DockerGen
|
||||||
DockerComposeRunRepo Print
|
DockerComposeRun repo Print
|
||||||
DockerComposeRunEsl Print
|
DockerComposeRun gen Print
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user