diff --git a/Dockerfile b/Dockerfile index 4123587..7eb6161 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,7 +1,9 @@ -FROM debian:stable +FROM centos:7 -RUN apt-get update && \ - apt-get install -y curl wget p7zip-full createrepo genisoimage syslinux-utils isomd5sum cpio +RUN yum install -y epel-release && \ + yum localinstall -y http://mirror.nethserver.org/nethserver/7/base/x86_64/Packages/nethserver-release-7-15.ns7.noarch.rpm && \ + yum localinstall -y https://repo.libreschool.org/nethserver/7/base/x86_64/Packages/libreschool-release-1.0-1.noarch.rpm && \ + yum install -y curl wget p7zip p7zip-plugins createrepo genisoimage syslinux isomd5sum cpio ADD run.sh /usr/local/bin RUN chmod 755 /usr/local/bin/run.sh diff --git a/README.md b/README.md index bc4e6c3..a4f4509 100644 --- a/README.md +++ b/README.md @@ -2,12 +2,12 @@ [![Build Status](https://drone.libreschool.org/api/badges/libreschool-automation/libreschool-iso-builder/status.svg)](https://drone.libreschool.org/libreschool-automation/libreschool-iso-builder) -Debian docker image with some packages preinstalled and a script to correctly +Centos 7 docker image with some packages preinstalled and a script to correctly package the LibreSchool ISO ## Build -``` +```bash docker build . -t libreschool-automation/libreschool-iso-builder:latest ``` diff --git a/run.sh b/run.sh index 6f35bd0..f86c21f 100644 --- a/run.sh +++ b/run.sh @@ -13,6 +13,11 @@ if [ ! -r /source.iso ] ; then wget -qO/source.iso "$PLUGIN_SOURCE_ISO_URL" || exit 1 fi +if [ ! -r /drone/src/packages.list ] ; then + echo "! missing packages.list" + exit 1 +fi + mkdir /src echo "+ Extracting source ISO" 7z x -o/src -bd /source.iso || exit 1 @@ -21,21 +26,18 @@ echo "+ Removing all TRANS.TBL files" find /src -name TRANS.TBL -delete echo "+ Adding custom files from 'root'" -cp -vr /drone/src/root/* /src/ +cp -vfr /drone/src/root/* /src/ echo "+ Adding GPG signing key" curl -s "http://repo.libreschool.org/nethserver/RPM-GPG-KEY-LibreSchool" > /src/RPM-GPG-KEY-LibreSchool echo "+ Adding custom packages" -if [ ! -r /drone/src/packages.list ] ; then - echo "! missing packages.list" - exit 1 -fi +# TODO: find a way to remove packages already on ISO mkdir -p /src/libreschool /drone/src/package_cache -cd /drone/src/package_cache -rm /drone/src/wget.log -wget -ci /drone/src/packages.list -o /drone/src/wget.log || ( echo "! cannot download all packages." ; exit 1 ) -cp *.rpm /src/libreschool +cat /drone/src/packages.list | xargs yum install --downloaddir=/drone/src/package_cache --downloadonly && \ +cat /drone/src/packages.list | xargs yumdownloader --destdir=/drone/src/package_cache --downloadonly --archlist=x86_64 \ + || ( echo "! cannot download all packages." ; exit 1 ) +cp /drone/src/package_cache/*.rpm /src/libreschool cd /src/libreschool if [ -r comps.xml ] ; then