diff options
Diffstat (limited to 'util/manibuilder/Dockerfile.anita')
-rw-r--r-- | util/manibuilder/Dockerfile.anita | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/util/manibuilder/Dockerfile.anita b/util/manibuilder/Dockerfile.anita new file mode 100644 index 000000000..52befce00 --- /dev/null +++ b/util/manibuilder/Dockerfile.anita @@ -0,0 +1,65 @@ +FROM debian:bullseye + +ARG PKG_PATH=http://cdn.netbsd.org/pub/pkgsrc/packages/NetBSD/amd64/7.1/All +ARG INST_IMG=http://ftp.de.netbsd.org/pub/NetBSD/NetBSD-7.1/amd64/ + +RUN \ + useradd -p locked -m mani && \ + apt-get -qq update && \ + apt-get -qq upgrade && \ + apt-get -qqy install git python-is-python3 python3-pexpect \ + python3-distutils genisoimage qemu-system && \ + apt-get clean + +RUN git clone https://github.com/gson1703/anita.git +RUN cd anita && python setup.py install + +ARG DISK_SIZE=1G +ARG INSTALL_MEM=128M +USER mani +RUN cd && mkdir .ccache && chown mani:mani .ccache && \ + anita --sets kern-GENERIC,modules,base,etc,comp \ + --disk-size ${DISK_SIZE} --memory-size=${INSTALL_MEM} \ + install ${INST_IMG} && \ + rm -rf work-*/download + +ARG EXTRA_PKG="" +ARG RUNTIME_MEM=128M +RUN cd && anita --persist --memory-size=${RUNTIME_MEM} --run \ +"echo 'dhcpcd' >init && \ + echo 'export PKG_PATH=${PKG_PATH}' >>init && \ + . ./init && \ + pkg_add gmake git-base ccache pciutils libusb1 libusb-compat libftdi \ + ${EXTRA_PKG} && \ + git config --global --add http.sslVerify false && \ + git clone https://review.coreboot.org/flashrom.git" \ + boot ${INST_IMG} + +RUN cd && dd if=/dev/zero bs=1M count=64 of=cache.img && \ + anita --vmm-args '-hdb cache.img' --persist \ + --memory-size=${RUNTIME_MEM} --run \ +"if [ \$(uname -m) = i386 -o \$(uname -m) = amd64 ]; then \ + bdev=wd1d; \ + else \ + bdev=wd1c; \ + fi; \ + newfs -I \${bdev} && \ + mkdir .ccache && \ + mount /dev/\${bdev} .ccache && \ + ccache -M 60M && \ + umount .ccache && \ + echo 'manitest() {' >>init && \ + echo ' fsck -y -t ffs /dev/'\${bdev} >>init && \ + echo ' mount /dev/'\${bdev}' ~/.ccache' >>init && \ + echo ' (cd ~/flashrom && eval \" \$*\")' >>init && \ + echo ' ret=\$?' >>init && \ + echo ' umount ~/.ccache' >>init && \ + echo ' return \$ret' >>init && \ + echo '}' >>init" \ + boot ${INST_IMG} && \ + gzip cache.img + +COPY anita-wrapper.sh /home/mani/mani-wrapper.sh +ENV INST_IMG ${INST_IMG} +ENV MEM_SIZE ${RUNTIME_MEM} +ENTRYPOINT ["/bin/sh", "/home/mani/mani-wrapper.sh"] |