live-bootstrap refactor pass 1
This commit is contained in:
parent
f0038c8f9c
commit
f542a9468e
|
@ -1,18 +0,0 @@
|
||||||
FROM alpine@sha256:eece025e432126ce23f223450a0326fbebde39cdf496a85d8c016293fc851978 as seed
|
|
||||||
|
|
||||||
FROM seed as fetch
|
|
||||||
RUN set -ex; \
|
|
||||||
apk update; \
|
|
||||||
apk add gcc g++ libc-dev make linux-headers patch
|
|
||||||
RUN find / \
|
|
||||||
\( -name sys \
|
|
||||||
-o -name proc \
|
|
||||||
-o -name dev \
|
|
||||||
-o -path /etc/resolv.conf \
|
|
||||||
-o -path /etc/hosts \
|
|
||||||
\) \
|
|
||||||
-prune \
|
|
||||||
-o -type f \
|
|
||||||
-exec touch -hcd "@0" "{}" +
|
|
||||||
|
|
||||||
FROM fetch as package
|
|
|
@ -1,13 +1,10 @@
|
||||||
.PHONY: bootstrap
|
.PHONY: bootstrap
|
||||||
bootstrap: \
|
bootstrap: \
|
||||||
out/bootstrap.tgz \
|
out/live-bootstrap.tgz \
|
||||||
out/stage0.tgz
|
out/stage0.tgz
|
||||||
|
|
||||||
out/bootstrap.tgz:
|
out/live-bootstrap.tgz: out/stage0.tgz
|
||||||
$(call build,bootstrap,bootstrap)
|
$(call build,bootstrap,live-bootstrap)
|
||||||
|
|
||||||
out/stage0.tgz:
|
out/stage0.tgz:
|
||||||
$(call build,bootstrap,stage0)
|
$(call build,bootstrap,stage0)
|
||||||
|
|
||||||
out/mes.tgz: out/stage0.tgz
|
|
||||||
$(call build,bootstrap,mes)
|
|
||||||
|
|
|
@ -0,0 +1,69 @@
|
||||||
|
ARG REGISTRY=local
|
||||||
|
ARG VERSION=fc6eeb6bd75ea0d0025a79ea9fe45614bd60ba14
|
||||||
|
ARG SRC_SITE=https://codeload.github.com/lrvick/live-bootstrap/legacy.tar.gz
|
||||||
|
ARG SRC_HASH=0c268b19cf9f4eefdaf45dab64ac393ccf8ee43de58f0721624cab358044bf78
|
||||||
|
FROM debian@sha256:bac353db4cc04bc672b14029964e686cd7bad56fe34b51f432c1a1304b9928da as debian
|
||||||
|
FROM ${REGISTRY}/stage0 as stage0
|
||||||
|
|
||||||
|
FROM debian as fetch
|
||||||
|
ARG VERSION
|
||||||
|
ENV VERSION=${VERSION}
|
||||||
|
ARG SRC_SITE
|
||||||
|
ENV SRC_SITE=${SRC_SITE}
|
||||||
|
ARG SRC_HASH
|
||||||
|
ENV SRC_HASH=${SRC_HASH}
|
||||||
|
RUN apt update && apt install -y curl gcc
|
||||||
|
RUN set -eux; \
|
||||||
|
curl ${SRC_SITE}/${VERSION} -o live-bootstrap.tar.gz; \
|
||||||
|
echo "${SRC_HASH} live-bootstrap.tar.gz" | sha256sum -c; \
|
||||||
|
tar -xvf live-bootstrap.tar.gz; \
|
||||||
|
mv lrvick-live-bootstrap-* live-bootstrap
|
||||||
|
WORKDIR live-bootstrap
|
||||||
|
RUN ./download-distfiles.sh
|
||||||
|
RUN set -eux; \
|
||||||
|
mkdir -p /rootfs; \
|
||||||
|
mv steps distfiles seed/* /rootfs/
|
||||||
|
RUN echo "\
|
||||||
|
FORCE_TIMESTAMPS=False\n\
|
||||||
|
CHROOT=True\n\
|
||||||
|
UPDATE_CHECKSUMS=False\n\
|
||||||
|
JOBS=10\n\
|
||||||
|
SWAP_SIZE=0\n\
|
||||||
|
FINAL_JOBS=10\n\
|
||||||
|
INTERNAL_CI=False\n\
|
||||||
|
INTERACTIVE=False\n\
|
||||||
|
BARE_METAL=False\n\
|
||||||
|
EXTERNAL_SOURCES=True\n\
|
||||||
|
DISK=sda1\n\
|
||||||
|
KERNEL_BOOTSTRAP=False\n\
|
||||||
|
BUILD_KERNELS=False\
|
||||||
|
" > /rootfs/steps/bootstrap.cfg
|
||||||
|
RUN cat /rootfs/steps/bootstrap.cfg
|
||||||
|
|
||||||
|
FROM scratch as build
|
||||||
|
COPY --from=stage0 / .
|
||||||
|
COPY --from=fetch /rootfs .
|
||||||
|
ENV ARCH_DIR=x86
|
||||||
|
ENV ARCH=x86
|
||||||
|
RUN ["/x86/bin/kaem","--verbose","--strict","--file","./after.kaem"]
|
||||||
|
|
||||||
|
FROM build as install
|
||||||
|
ENV PATH=/bin:/usr/sbin:/usr/bin
|
||||||
|
RUN set -eux; \
|
||||||
|
rm -rf /usr/lib/python*/__pycache__; \
|
||||||
|
mkdir -p /rootfs/etc /rootfs/home/user; \
|
||||||
|
cp -R $(ls -d /etc/* | grep -v '\(resolv.conf\|hosts\)') /rootfs/etc/; \
|
||||||
|
cp -R lib usr bin var /rootfs/; \
|
||||||
|
echo "user:x:1000:" > /rootfs/etc/group; \
|
||||||
|
echo "user:x:1000:1000::/home/user:/bin/bash" > /rootfs/etc/passwd; \
|
||||||
|
find /rootfs -exec touch -hcd "@0" "{}" +
|
||||||
|
|
||||||
|
FROM scratch as package
|
||||||
|
COPY --from=install /rootfs /
|
||||||
|
USER 1000:1000
|
||||||
|
ENTRYPOINT ["/bin/bash"]
|
||||||
|
ENV TZ=UTC
|
||||||
|
ENV LANG=C.UTF-8
|
||||||
|
ENV SOURCE_DATE_EPOCH=1
|
||||||
|
ENV KCONFIG_NOTIMESTAMP=1
|
||||||
|
ENV PS1="bootstrap$ "
|
|
@ -1,32 +0,0 @@
|
||||||
ARG REGISTRY=local
|
|
||||||
ARG VERSION=0.26
|
|
||||||
ARG SRC_SITE=https://gitlab.com/janneke/mes/-/archive/
|
|
||||||
ARG SRC_HASH=f0750704013b7d7ec1ca19cf06b6cf28cdcf5581317386006cef074ed368b205
|
|
||||||
FROM ${REGISTRY}/stage0 as stage0
|
|
||||||
FROM busybox@sha256:ba76950ac9eaa407512c9d859cea48114eeff8a6f12ebaa5d32ce79d4a017dd8 as busybox
|
|
||||||
|
|
||||||
FROM busybox as fetch
|
|
||||||
ARG VERSION
|
|
||||||
ENV VERSION=${VERSION}
|
|
||||||
ARG SRC_SITE
|
|
||||||
ENV SRC_SITE=${SRC_SITE}
|
|
||||||
ARG SRC_HASH
|
|
||||||
ENV SRC_HASH=${SRC_HASH}
|
|
||||||
RUN set -eux; \
|
|
||||||
wget ${SRC_SITE}/v${VERSION}/mes-v${VERSION}.tar.gz -O mes.tgz; \
|
|
||||||
echo "${SRC_HASH} mes.tgz" > mes.sha256
|
|
||||||
COPY --from=stage0 / /stage0
|
|
||||||
RUN ls -lah /stage0
|
|
||||||
|
|
||||||
FROM stage0 as build
|
|
||||||
ARG SRC_HASH
|
|
||||||
ENV SRC_HASH=${SRC_HASH}
|
|
||||||
ARG VERSION
|
|
||||||
ENV VERSION=${VERSION}
|
|
||||||
COPY --from=fetch /mes.tgz mes.tgz
|
|
||||||
COPY --from=fetch /mes.sha256 mes.sha256
|
|
||||||
RUN ["/sha256sum","-c","mes.sha256"]
|
|
||||||
RUN ["/ungz","--file","mes.tgz","--output","mes.tar"]
|
|
||||||
RUN ["/untar","--verbose","--non-strict","--file","mes.tar"]
|
|
||||||
WORKDIR mes-v${VERSION}
|
|
||||||
RUN ["/M2-Planet","--debug","--architecture","amd64","-f","src/mes.c"]
|
|
|
@ -18,10 +18,10 @@ RUN set -eux; \
|
||||||
echo "${SRC_HASH} stage0-posix-${VERSION}.tar.gz" | sha256sum -c; \
|
echo "${SRC_HASH} stage0-posix-${VERSION}.tar.gz" | sha256sum -c; \
|
||||||
tar -xf stage0-posix-${VERSION}.tar.gz
|
tar -xf stage0-posix-${VERSION}.tar.gz
|
||||||
WORKDIR stage0-posix-${VERSION}
|
WORKDIR stage0-posix-${VERSION}
|
||||||
RUN bootstrap-seeds/POSIX/AMD64/kaem-optional-seed
|
RUN bootstrap-seeds/POSIX/x86/kaem-optional-seed
|
||||||
RUN mv AMD64/bin /rootfs/
|
RUN mkdir -p /rootfs && cp -R * /rootfs/
|
||||||
WORKDIR /rootfs
|
WORKDIR /rootfs
|
||||||
RUN sha256sum * > hashes.txt
|
RUN sha256sum x86/bin/* > hashes.txt
|
||||||
|
|
||||||
FROM archlinux as build2
|
FROM archlinux as build2
|
||||||
ARG VERSION
|
ARG VERSION
|
||||||
|
@ -36,10 +36,10 @@ RUN set -eux; \
|
||||||
echo "${SRC_HASH} stage0-posix-${VERSION}.tar.gz" | sha256sum -c; \
|
echo "${SRC_HASH} stage0-posix-${VERSION}.tar.gz" | sha256sum -c; \
|
||||||
tar -xf stage0-posix-${VERSION}.tar.gz
|
tar -xf stage0-posix-${VERSION}.tar.gz
|
||||||
WORKDIR stage0-posix-${VERSION}
|
WORKDIR stage0-posix-${VERSION}
|
||||||
RUN bootstrap-seeds/POSIX/AMD64/kaem-optional-seed
|
RUN bootstrap-seeds/POSIX/x86/kaem-optional-seed
|
||||||
RUN mv AMD64/bin /rootfs/
|
RUN mkdir -p /rootfs && cp -R * /rootfs/
|
||||||
WORKDIR /rootfs
|
WORKDIR /rootfs
|
||||||
RUN sha256sum * > hashes.txt
|
RUN sha256sum x86/bin/* > hashes.txt
|
||||||
|
|
||||||
FROM alpine as build3
|
FROM alpine as build3
|
||||||
ARG VERSION
|
ARG VERSION
|
||||||
|
@ -54,10 +54,10 @@ RUN set -eux; \
|
||||||
echo "${SRC_HASH} stage0-posix-${VERSION}.tar.gz" | sha256sum -c; \
|
echo "${SRC_HASH} stage0-posix-${VERSION}.tar.gz" | sha256sum -c; \
|
||||||
tar -xf stage0-posix-${VERSION}.tar.gz
|
tar -xf stage0-posix-${VERSION}.tar.gz
|
||||||
WORKDIR stage0-posix-${VERSION}
|
WORKDIR stage0-posix-${VERSION}
|
||||||
RUN bootstrap-seeds/POSIX/AMD64/kaem-optional-seed
|
RUN bootstrap-seeds/POSIX/x86/kaem-optional-seed
|
||||||
RUN mv AMD64/bin /rootfs/
|
RUN mkdir -p /rootfs && cp -R * /rootfs/
|
||||||
WORKDIR /rootfs
|
WORKDIR /rootfs
|
||||||
RUN sha256sum * > hashes.txt
|
RUN sha256sum x86/bin/* > hashes.txt
|
||||||
|
|
||||||
FROM scratch as compare
|
FROM scratch as compare
|
||||||
COPY --from=build1 /rootfs/ /a
|
COPY --from=build1 /rootfs/ /a
|
||||||
|
@ -66,27 +66,27 @@ COPY --from=build3 /rootfs/ /c
|
||||||
|
|
||||||
FROM compare as test1
|
FROM compare as test1
|
||||||
WORKDIR /a
|
WORKDIR /a
|
||||||
RUN ["/a/sha256sum","-c","/a/hashes.txt"]
|
RUN ["x86/bin/sha256sum","-c","/a/hashes.txt"]
|
||||||
WORKDIR /b
|
RUN ["x86/bin/sha256sum","-c","/b/hashes.txt"]
|
||||||
RUN ["/a/sha256sum","-c","/a/hashes.txt"]
|
RUN ["x86/bin/sha256sum","-c","/c/hashes.txt"]
|
||||||
WORKDIR /c
|
|
||||||
RUN ["/a/sha256sum","-c","/a/hashes.txt"]
|
|
||||||
|
|
||||||
FROM compare as test2
|
FROM compare as test2
|
||||||
WORKDIR /a
|
|
||||||
RUN ["/b/sha256sum","-c","/b/hashes.txt"]
|
|
||||||
WORKDIR /b
|
WORKDIR /b
|
||||||
RUN ["/b/sha256sum","-c","/b/hashes.txt"]
|
RUN ["x86/bin/sha256sum","-c","/a/hashes.txt"]
|
||||||
WORKDIR /c
|
RUN ["x86/bin/sha256sum","-c","/b/hashes.txt"]
|
||||||
RUN ["/b/sha256sum","-c","/b/hashes.txt"]
|
RUN ["x86/bin/sha256sum","-c","/c/hashes.txt"]
|
||||||
|
|
||||||
FROM compare as test3
|
FROM compare as test3
|
||||||
WORKDIR /a
|
|
||||||
RUN ["/c/sha256sum","-c","/c/hashes.txt"]
|
|
||||||
WORKDIR /b
|
|
||||||
RUN ["/c/sha256sum","-c","/c/hashes.txt"]
|
|
||||||
WORKDIR /c
|
WORKDIR /c
|
||||||
RUN ["/c/sha256sum","-c","/c/hashes.txt"]
|
RUN ["x86/bin/sha256sum","-c","/a/hashes.txt"]
|
||||||
|
RUN ["x86/bin/sha256sum","-c","/b/hashes.txt"]
|
||||||
|
RUN ["x86/bin/sha256sum","-c","/c/hashes.txt"]
|
||||||
|
|
||||||
|
FROM scratch as install
|
||||||
|
COPY --from=test1 /a/hashes.txt /a-hashes.txt
|
||||||
|
COPY --from=test2 /b/hashes.txt /b-hashes.txt
|
||||||
|
COPY --from=test3 /c/hashes.txt /c-hashes.txt
|
||||||
|
COPY --from=build1 /rootfs /
|
||||||
|
|
||||||
FROM scratch as package
|
FROM scratch as package
|
||||||
COPY --from=build1 /rootfs /
|
COPY --from=install / /
|
||||||
|
|
Reference in New Issue