Simplify, clean up and use official stages image
This commit is contained in:
parent
efa6ff7362
commit
189519b14f
15
Dockerfile
15
Dockerfile
@ -1,15 +1,16 @@
|
||||
FROM busybox
|
||||
FROM exherbo/exherbo-x86_64-pc-linux-gnu-base
|
||||
MAINTAINER Julian Ospald <hasufell@posteo.de>
|
||||
|
||||
ENV PALUDIS_DO_NOTHING_SANDBOXY=1
|
||||
RUN echo "export PALUDIS_DO_NOTHING_SANDBOXY=1" >> /etc/profile
|
||||
|
||||
# copy hooks
|
||||
COPY ./config/paludis /etc/paludis-new
|
||||
COPY ./config/paludis /etc/paludis
|
||||
|
||||
# This one should be present by running the build.sh script
|
||||
COPY bootstrap.sh build.sh /
|
||||
|
||||
# one step, to make the layer as thin as possible
|
||||
# bootstrap.sh calls build.sh
|
||||
RUN /bootstrap.sh amd64 x86_64
|
||||
COPY build.sh /
|
||||
RUN chmod +x /build.sh && /build.sh
|
||||
RUN rm /build.sh
|
||||
|
||||
# update etc files... hope this doesn't screw up
|
||||
RUN eclectic config accept-all
|
||||
|
55
bootstrap.sh
55
bootstrap.sh
@ -1,55 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
set -e
|
||||
|
||||
# First param is package tarball, 2nd is the *.DIGEST file
|
||||
VerifyShaOfStage3()
|
||||
{
|
||||
test_sum=$(awk -v myvar="$1" '$2==myvar {for(i=1; i<=1; i++) { print $1; exit}}' $2)
|
||||
calculated_sum=$(sha1sum $1 | awk '{print $1}' -)
|
||||
if [[ "$test_sum" == "$calculated_sum" ]]; then
|
||||
return 0
|
||||
else
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
suffix=$3 # e.g. -hardened
|
||||
arch=$1
|
||||
dist="http://dev.exherbo.org/stages/"
|
||||
stage3="exherbo-x86_64-pc-linux-gnu-current.tar.xz"
|
||||
|
||||
# Create working directory, keep a copy of busybox handy
|
||||
mkdir newWorldOrder; cd newWorldOrder
|
||||
cp /bin/busybox .
|
||||
|
||||
echo "Downloading and extracting ${stage3}..."
|
||||
wget -c "${dist}/${stage3}" "${dist}/sha1sum"
|
||||
if VerifyShaOfStage3 $stage3 "sha1sum"; then
|
||||
echo "DIGEST sum is okey";
|
||||
else
|
||||
echo "DIGEST sum is NOT okey";
|
||||
return 1;
|
||||
fi
|
||||
xz -d ${stage3}
|
||||
tar --exclude "./etc/hosts" --exclude "./etc/hostname" --exclude "./sys/*" -xf ${stage3%.*}
|
||||
/newWorldOrder/busybox rm -f ${stage3%.*}
|
||||
|
||||
echo "Installing stage 3"
|
||||
/newWorldOrder/busybox rm -rf /lib* /usr /var /bin /sbin /opt /mnt /media /root /home /run /tmp
|
||||
/newWorldOrder/busybox cp -fRap lib* /
|
||||
/newWorldOrder/busybox cp -fRap bin boot home media mnt opt root run sbin tmp usr var /
|
||||
/newWorldOrder/busybox cp -fRap etc/* /etc/
|
||||
/newWorldOrder/busybox cp -fRap /etc/paludis-new/* /etc/paludis/
|
||||
/newWorldOrder/busybox rm -rf /etc/paludis-new
|
||||
|
||||
# Cleaning
|
||||
cd /
|
||||
/newWorldOrder/busybox rm -rf /newWorldOrder /bootstrap.sh /linuxrc
|
||||
|
||||
# Say hello
|
||||
echo "Bootstrapped ${stage3} into /:"
|
||||
ls --color -lah
|
||||
|
||||
exec /bin/bash -c /build.sh
|
||||
|
57
build.sh
57
build.sh
@ -23,19 +23,54 @@ echo LANG="en_US.UTF-8" > /etc/env.d/99locale
|
||||
# update
|
||||
chgrp paludisbuild /dev/tty
|
||||
cave sync
|
||||
cave resolve -z -1 dev-libs/libressl sys-apps/paludis -U dev-libs/openssl -D dev-libs/openssl -f -x
|
||||
cave resolve -z \!dev-libs/openssl -u '*/*' -x
|
||||
cave resolve -z -1 dev-libs/libressl -x
|
||||
cave resolve -z -1 net-misc/wget net-misc/curl -x
|
||||
cave fix-linkage -x -- --without sys-apps/paludis
|
||||
cave resolve -z \!sys-apps/systemd -u '*/*' -x
|
||||
cave resolve -z -1 repository/spbecker -x
|
||||
|
||||
cave resolve --recommendations ignore --suggestions ignore \
|
||||
-z -1 \
|
||||
-U dev-libs/openssl -D dev-libs/openssl \
|
||||
dev-libs/libressl sys-apps/paludis \
|
||||
-f -x
|
||||
|
||||
cave resolve --recommendations ignore --suggestions ignore \
|
||||
-z \
|
||||
-u '*/*' \
|
||||
\!dev-libs/openssl \
|
||||
-x
|
||||
|
||||
cave resolve --recommendations ignore --suggestions ignore \
|
||||
-z -1 \
|
||||
dev-libs/libressl \
|
||||
-x
|
||||
|
||||
cave resolve --recommendations ignore --suggestions ignore \
|
||||
-z -1 \
|
||||
net-misc/wget net-misc/curl \
|
||||
-x
|
||||
|
||||
cave fix-linkage -x -- \
|
||||
--without sys-apps/paludis \
|
||||
--recommendations ignore --suggestions ignore
|
||||
|
||||
cave resolve --recommendations ignore --suggestions ignore \
|
||||
-z \
|
||||
-u '*/*' \
|
||||
\!sys-apps/systemd \
|
||||
-x
|
||||
|
||||
cave resolve --recommendations ignore --suggestions ignore \
|
||||
-z -1 \
|
||||
repository/spbecker \
|
||||
-x
|
||||
|
||||
cave update-world app-editors/nano
|
||||
cave resolve -c world -x
|
||||
|
||||
cave resolve \
|
||||
-c world --recommendations ignore --suggestions ignore \
|
||||
-x
|
||||
|
||||
cave purge -x
|
||||
cave fix-linkage -x
|
||||
|
||||
cave fix-linkage -x -- \
|
||||
--recommendations ignore --suggestions ignore
|
||||
|
||||
rm -rf /var/cache/paludis/distfiles/*
|
||||
|
||||
rm -f /build.sh
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user