From 66d98e5400d38d1a5bb1bd08755ed8d4afdb9990 Mon Sep 17 00:00:00 2001 From: Guillaume Astier Ruiz Date: Thu, 20 Oct 2022 17:09:11 +0200 Subject: [PATCH] [UPADTE] - compile esl porduit success git status ! --- .env | 3 ++- .gitignore | 1 + Template/Dockerfile.gen | 35 +++++++++++++++++++++++--------- Template/Dockerfile.repo | 18 ++++++++-------- Template/docker-compose.yml.repo | 2 +- Template/function | 6 ++++-- bin/common.fct | 18 ++++++++++------ bin/esl.fct | 34 +++++++++++-------------------- bin/gen.sh | 12 ++++++++++- bin/{sync.sh => repo.sh} | 0 log/.gitkeep | 0 11 files changed, 78 insertions(+), 51 deletions(-) rename bin/{sync.sh => repo.sh} (100%) delete mode 100644 log/.gitkeep diff --git a/.env b/.env index b4b7626..084ee84 100644 --- a/.env +++ b/.env @@ -8,6 +8,7 @@ RepoVers=1 CentOsVersion=oraclelinux:8.6 Cible=oraclelinux VersionCible=8.6 +PackageManager=dnf # Sync repo script Run=/usr/local/bin/sync.sh # Sync arg script @@ -20,7 +21,7 @@ RunArg=del # Esl compilator # Version of image -GenVers=1 +GenVers=2 # Programme local directory ProgrammeDir=/data/GIT/ESL_PRODUIT # Repositories Directory diff --git a/.gitignore b/.gitignore index 9588b86..41aa672 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ Dockerfile data/ docker-compose.yml +cible diff --git a/Template/Dockerfile.gen b/Template/Dockerfile.gen index d9f5f58..5d2f7de 100644 --- a/Template/Dockerfile.gen +++ b/Template/Dockerfile.gen @@ -1,19 +1,34 @@ -FROM centos:centos7 +#FROM centos:centos7 +FROM ${Cible}:${VersionCible} LABEL maintainer='Guillaume Astier Ruiz' -ENV os='centos' -ENV osversion='7' -ENV ESL-TOOLS=gen +ENV os="${Cible}" +ENV osversion="${VersionCible}" +ENV ESL-TOOLS=repo +ENV TERM=xterm -RUN yum update -y +RUN ${PackageManager} update -y -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 ${PackageManager} install -y perl 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-Getopt-Long perl-HTML-Parser perl-HTML-Tagset perl-HTTP-Cookies 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-LWP-MediaTypes perl-Module-Runtime perl-Mozilla-CA perl-Net-HTTP perl-Net-SSLeay perl-Package-Generator perl-Params-Util 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-LibXML perl-XML-NamespaceSupport perl-XML-Parser perl-XML-SAX perl-XML-SAX-Base perl-XML-Simple perl-XML-TokeParser perl-XML-XPath 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 ${PackageManager} install -y basesystem binutils bzip2 cpp createrepo dejavu-fonts-common dejavu-sans-fonts 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 lm_sensors-devel lm_sensors-libs mailcap mpfr ncurses-base net-tools openssl-devel pcre-devel popt-devel python3 python-srpm-macros redhat-rpm-config rpm-build rpm-devel rsync strace tree unzip vim-common vim-enhanced vim-filesystem xz-devel zip zlib-devel nginx openssh-clients -RUN yum install -y net-snmp +RUN ${PackageManager} install -y net-snmp +RUN ${PackageManager} install epel-release -y +RUN ${PackageManager} install screen -y -COPY ./bin/run.sh /usr/local/bin/run.sh +COPY ./bin/ /usr/local/bin/ RUN chmod 777 /usr/local/bin/run.sh -CMD /usr/local/bin/run.sh ${GenScript} +RUN groupadd esl -g 1000 +#RUN useradd -s /bin/bash -g 1000 -u 1000 -p "$(/usr/bin/openssl passwd -1 esl)" esl +RUN useradd -s /bin/bash -g 1000 -u 1000 esl +RUN mkdir /data +RUN mkdir -p /tmp/log/ +RUN chown -R esl:esl /data +RUN chown -R esl:esl /tmp/log +USER esl + + +RUN echo /usr/local/bin/run.sh ${GenScript} +CMD /usr/local/bin/run.sh ${GenScript} diff --git a/Template/Dockerfile.repo b/Template/Dockerfile.repo index 290d641..51ba1f3 100644 --- a/Template/Dockerfile.repo +++ b/Template/Dockerfile.repo @@ -8,27 +8,29 @@ ENV osversion="${VersionCible}" ENV ESL-TOOLS=repo ENV TERM=xterm -RUN yum update -y +RUN ${PackageManager} update -y -RUN yum install yum-utils createrepo vim wget -y -RUN yum install epel-release -y -RUN yum install screen -y -#COPY ./bin/sync.sh /usr/local/bin/sync.sh +RUN ${PackageManager} install yum-utils createrepo vim wget -y +RUN ${PackageManager} install epel-release -y +RUN ${PackageManager} install screen -y +#COPY ./bin/repo.sh /usr/local/bin/repo.sh COPY ./bin/ /usr/local/bin/ -#RUN chmod 755 /usr/local/bin/sync.sh +#RUN chmod 755 /usr/local/bin/repo.sh RUN chmod 755 /usr/local/bin/* #COPY ./bin/empty.sh /usr/local/bin/empty.sh #RUN chmod 755 /usr/local/bin/empty.sh -RUN yum install openssl -y RUN groupadd esl -g 1000 -RUN useradd -s /bin/bash -g 1000 -u 1000 -p "$(/usr/bin/openssl passwd -1 esl)" esl +#RUN useradd -s /bin/bash -g 1000 -u 1000 -p "$(/usr/bin/openssl passwd -1 esl)" esl +RUN useradd -s /bin/bash -g 1000 -u 1000 esl RUN mkdir /data +RUN mkdir -p /tmp/log/ RUN chown -R esl:esl /data +RUN chown -R esl:esl /tmp/log USER esl diff --git a/Template/docker-compose.yml.repo b/Template/docker-compose.yml.repo index 65106fd..bd20f44 100644 --- a/Template/docker-compose.yml.repo +++ b/Template/docker-compose.yml.repo @@ -6,6 +6,6 @@ services: image: esl-repo:${RepoVers} volumes: - ./data:/data - - ./log:/tmp/log + - ./data/log:/tmp/log - ./bin:/usr/local/bin diff --git a/Template/function b/Template/function index 727e950..8346d45 100755 --- a/Template/function +++ b/Template/function @@ -55,7 +55,8 @@ DeleteFile() { DockerConnect() { Inst=$(docker ps|grep "esl-$1" | awk '{print $NF}') - [[ -z "${Inst}" ]] && docker run -ti -v $(realpath $(dirname $0))/data:/data -u esl esl\-${1}:1 bash || docker exec -ti ${Inst} bash + [[ -L $(realpath $(dirname $0))/cible ]] && Cible="-v $(realpath $(dirname $0))/cible:/data/cible" + [[ -z "${Inst}" ]] && docker run -ti -v $(realpath $(dirname $0))/data:/data -v $(realpath $(dirname $0))/data/log:/log ${Cible} --hostname $1 -u esl esl\-${1}:2 bash || docker exec -ti ${Inst} bash echo DEBUG $Inst $1 } @@ -124,7 +125,8 @@ DockerComposeRun () { [[ "$2" == "Print" ]] && Print="-d" || Print="" cp ${Wai}/Template/docker-compose.yml.$1 ${Wai}/docker-compose.yml echo "Log is : log/${1} - use tail -f ./log/$1" - docker run -ti -v $(realpath $(dirname $0))/data:/data -u esl esl-repo:1 /usr/local/bin/sync.sh + [[ -L $(realpath $(dirname $0))/cible ]] && Cible="-v $(realpath $(dirname $0))/cible:/data/cible" + docker run -ti -v $(realpath $(dirname $0))/data:/data -v $(realpath $(dirname $0))/data/log:/tmp/log ${Cible} -u esl --hostname $1 esl\-${1}:2 /usr/local/bin/${1}.sh #yes | docker-compose up ${Print} --remove-orphans 1>&1 | tee /tmp/RunDocker-${1}.log &> /dev/null ##yes | docker-compose up ${Print} --remove-orphans Res $? diff --git a/bin/common.fct b/bin/common.fct index 672d4f2..34d73f9 100644 --- a/bin/common.fct +++ b/bin/common.fct @@ -27,19 +27,25 @@ Download (){ tput sc while [[ ! -z $(ps axf| grep reposync | grep -v grep) ]] do - #DataCurr=$(MoveCurr $cpt) read -r Curr cpt <<< $(MoveCurr $cpt) - #Curr=$(echo $DataCurr | cut -d" " -f1) - #cpt=$(echo $DataCurr | cut -d" " -f2) Orpm=${Rpm} OrpmName=$(basename ${Orpm:-/}| sed 's/-[0-9]/|/g' | cut -d"|" -f1) Rpm=$(find $Rep -type f -name "*.rpm" -printf "%T@ %p\n" | sort -n | cut -d' ' -f 2- | tail -n 1) RpmName=$(basename ${Rpm:-/}| sed 's/-[0-9]/|/g' | cut -d"|" -f1) - #Curr=$(MoveCurr $cpt) + Txt="Downloading ${RpmName:-/}" + if [[ "${RpmName}" == "$OrpmName" ]] && [[ "$RpmName" != "/" ]] + then + RpmSize=$(du -s $Rpm|awk '{print $1}') + OrpmSize=$(du -s $Orpm|awk '{print $1}') + [[ "$RpmSize" -eq "$OrpmSize" ]] && Txt="Sync - RPM Signature" + fi + [[ "$RpmName" != "/" ]] && Txt="Syncing metada" + tput rc; tput el - echo -ne "\r[${Curr}] - Downloading ${RpmName:-/}\r" + echo -ne "\r[${Curr}] - $Txt\r" + + sleep 0.2 - echo "DEBUG : $cpt $Curr" > /tmp/a done diff --git a/bin/esl.fct b/bin/esl.fct index 8d77ed9..b597a45 100644 --- a/bin/esl.fct +++ b/bin/esl.fct @@ -4,16 +4,9 @@ function centos() { Repo=epel Action "Get epel" reposync -l --newest-only --delete --downloadcomps --download-metadata --repoid=${Repo} --download_path=/data/repo/ 2>&1 | tee /data/log/get_${Repo}.log &> /dev/null - - Action "Move SeanAps EPEL : " mkdir -p /data/repo/EPEL/el7/x86_64/Packages ; for var in $(find /data/repo/epel/ -name *rpm -type f) ; do mv $var /data/repo/EPEL/el7/x86_64/Packages; done - - - Action "Create repo epel : " cd /data/repo/EPEL/el7/x86_64/ && createrepo -v /data/repo/EPEL/el7/x86_64/ 2>&1 | tee /data/log/CreateRepo_${Repo}.log &> /dev/null - Action "Get OS BASE : " mkdir -p /data/repo/tmp/ && cd /data/repo/tmp/ && wget -r -p -k http://mirror.centos.org/centos/7.9.2009/os/x86_64/ 2>&1 | tee /data/log/get_base.log - for var in $(find .| grep index.html) ;do rm -f $var;done mkdir -p /data/repo/CentOS/7.9/os/ @@ -22,10 +15,6 @@ function centos() { rm -rf /data/repo/tmp/* Action "Get OS updates : " cd /data/repo/tmp/ && wget -r -p -k http://mirror.centos.org/centos/7.9.2009/updates/x86_64/ 2>&1 | tee /data/log/get_updates.log &> /dev/null - - - #Action "Clean" for var in $(find . | grep index.html) ;do rm -f $var;done && mkdir -p /data/repo/CentOS/7.9/updates && mv /data/repo/tmp/mirror.centos.org/centos/7.9.2009/updates/x86_64/ /data/repo/CentOS/7.9/updates/ && rm -Rf /data/repo/tmp/ - } RunScreen (){ @@ -42,19 +31,20 @@ function oraclelinux () { Majeur=$(echo ${osversion} | cut -d"." -f1) Mineur=$(echo ${osversion} | cut -d"." -f2) - Action "Create Dir ${osversion}" mkdir -p /data/repo/OracleLinux/${osversion}/ - RunScreen appstream dnf reposync -g --newest-only --exclude='*.src' -p /data/repo/OracleLinux/${osversion}/ --download-metadata --repoid=ol${Majeur}_appstream - Download /data/repo/OracleLinux/${osversion}/ - Action "Move SeaNaps environement" mv /data/repo/OracleLinux/${osversion}/ol${Majeur}_appstream /data/repo/OracleLinux/${osversion}/appstream - - Action "Create BIN environement" mkdir -p /data/repo/OracleLinux/${osversion}/appstream/x86_64 - Action "Move data rpm in BIN environtment" mv /data/repo/OracleLinux/${osversion}/appstream/{getPackage,repodata} /data/repo/OracleLinux/${osversion}/appstream/x86_64 + test -L /data/repo/OracleLinux/${osversion}/appstream/x86_64 && Action "Delete Old Link" rm /data/repo/OracleLinux/${osversion}/appstream/x86_64 + Action "Create Dir ${osversion}" mkdir -p /data/repo/OracleLinux/${osversion}/appstream/ + RunScreen appstream dnf reposync -g --newest-only --exclude='*.src' -p /data/repo/OracleLinux/${osversion}/appstream/ --download-metadata --repoid=ol${Majeur}_appstream + Download /data/repo/OracleLinux/${osversion}/appstream/ + Action "Get in ${osversion} appstream" cd /data/repo/OracleLinux/${osversion}/appstream/ + Action "Link SeaNaps environement appstream" ln -s ol${Majeur}_appstream x86_64 - Action "Create Dir ${osversion}" mkdir -p /data/repo/OracleLinux/${osversion}/ - RunScreen appstream dnf reposync -g --newest-only --exclude='*.src' -p /data/repo/OracleLinux/${osversion}/ --download-metadata --repoid=ol${Majeur}_u${Mineur}_baseos_base + test -L /data/repo/OracleLinux/${osversion}/baseos/latest/x86_64 && Action "Delete Old Link" rm /data/repo/OracleLinux/${osversion}/baseos/latest/x86_64 - Download /data/repo/OracleLinux/${osversion}/ - Action "Move SeaNaps environement" mv /data/repo/OracleLinux/${osversion}/baseos/latest/x86_64/*/{getPackage,repodata} /data/repo/OracleLinux/${osversion}/baseos/latest/x86_64/ + Action "Create Dir ${osversion}" mkdir -p /data/repo/OracleLinux/${osversion}/baseos/latest + RunScreen appstream dnf reposync -g --newest-only --exclude='*.src' -p /data/repo/OracleLinux/${osversion}/baseos/latest --download-metadata --repoid=ol${Majeur}_u${Mineur}_baseos_base + Download /data/repo/OracleLinux/${osversion}/baseos + Action "Get in ${osversion} baseos" cd /data/repo/OracleLinux/${osversion}/baseos/latest + Action "Link SeaNaps environement baseOS" ln -s ol${Majeur}_u${Mineur}_baseos_base x86_64 } diff --git a/bin/gen.sh b/bin/gen.sh index 8bd3d08..ec6b703 100755 --- a/bin/gen.sh +++ b/bin/gen.sh @@ -2,12 +2,22 @@ +usage() { + + echo "No cible is present in /data/" + exit + +} + + RmEnv() { rm -Rf ${Wai}/ESL/.Prefetch/ rm -Rf ${Wai}/Workspace/* } -Wai=/data/ +Wai=/data/cible + +[[ ! -d $Wai ]] && usage cd ${Wai}/ESL/GenELMU/ diff --git a/bin/sync.sh b/bin/repo.sh similarity index 100% rename from bin/sync.sh rename to bin/repo.sh diff --git a/log/.gitkeep b/log/.gitkeep deleted file mode 100644 index e69de29..0000000