Skip to content
Snippets Groups Projects
Commit 39bea0ff authored by ping's avatar ping
Browse files

Use ubuntu instead of alpine

parent adfaf3c1
Branches
No related tags found
No related merge requests found
ARG ALPINE_VERSION
FROM alpine:${ALPINE_VERSION}
RUN apk add mtools xorriso squashfs-tools cryptsetup e2fsprogs limine-x86_64 limine-cd
RUN apk update && apk add --no-cache \
gcc \
musl-dev \
pkgconf \
git \
wget \
make \
ca-certificates \
glfw-dev \
libxcursor-dev \
libxinerama-dev \
libxi-dev \
libxxf86vm-dev \
libxrandr-dev \
upx \
glfw \
xrandr
#ARG ALPINE_VERSION
ARG DEBIAN_FRONTEND=noninteractive
#FROM alpine:${ALPINE_VERSION}
FROM ubuntu:22.04
#RUN apk add mtools xorriso squashfs-tools cryptsetup e2fsprogs limine-x86_64 limine-cd
RUN apt-get update && apt-get install -y gcc pkg-config git wget make ca-certificates libglfw3-dev libxcursor-dev libxinerama-dev libxi-dev libxxf86vm-dev upx-ucl
RUN DEBIAN_FRONTEND=noninteractive apt install -y cryptsetup squashfs-tools
RUN apt install -y debootstrap schroot
RUN git clone https://github.com/limine-bootloader/limine.git --branch=v8.x-binary --depth=1 /opt/limine
# Install go 1.22 from the official GO site
ENV archive=go1.22.6.linux-amd64.tar.gz
ENV PATH=$PATH:/usr/local/go/bin
WORKDIR /go
RUN wget https://go.dev/dl/$archive && \
tar -C /usr/local -xzf $archive && \
rm $archive
RUN wget https://go.dev/dl/$archive
RUN tar -C /usr/local -xzf $archive
RUN apt install -y xorriso
......@@ -36,3 +36,6 @@ bios:
bios_cd:
qemu-system-x86_64 -drive file=${iso_file},media=cdrom,if=ide,readonly=on -boot d -m 4G -smp 4
uefiserie:
qemu-system-x86_64 -bios /usr/share/OVMF/x64/OVMF.fd -drive file=${iso_file},format=raw -boot d -m 16G -smp 4 -netdev user,id=n1 -device virtio-net-pci,netdev=n1 -serial mon:stdio
......@@ -130,47 +130,80 @@ if [ "$LUKS_ENABLED" = "yes" ] && [ -z "$LUKS_PASSPHRASE" ]; then
helper
fi
check_container_and_alpine_version
#check_container_and_alpine_version
check_environment_var
echo "[Compiling nexus-exam...]"
cd ..
make build_nexus-exam
mkdir -p live_exam_os/$ROOTFS_DIR/usr/local/bin
cp build/nexus-exam live_exam_os/$ROOTFS_DIR/usr/local/bin/nexus-exam
make clean_client
cd -
#echo "[Compiling nexus-exam...]"
#cd ..
#make build_nexus-exam
#mkdir -p live_exam_os/$ROOTFS_DIR/usr/local/bin
#cp build/nexus-exam live_exam_os/$ROOTFS_DIR/usr/local/bin/nexus-exam
#make clean_client
#cd -
echo "[Create initramfs...]"
rm -rf $INITRD_DIR
mkdir -p "$INITRD_DIR"
apk update
if [ $LUKS_ENABLED = "yes" ]; then
cp config/01-initramfs/init $INITRD_DIR/init
packages="busybox musl cryptsetup cryptsetup-libs popt libuuid libblkid
device-mapper-libs libcrypto3 argon2-libs json-c libeconf
udev kmod-libs zlib xz-libs zstd-libs"
if [ "$LUKS_ENABLED" = "yes" ]; then
packages="busybox cryptsetup libblkid1 libuuid1 libdevmapper1.02.1 libcryptsetup12 \
libargon2-1 libjson-c5 libudev1 kmod zlib1g xz-utils zstd"
else
cp config/01-initramfs/init_no_luks $INITRD_DIR/init
packages="busybox musl libblkid libeconf libcrypto3
udev kmod-libs zlib xz-libs zstd-libs"
packages="busybox libblkid1 libudev1 kmod zlib1g xz-utils zstd"
fi
chmod +x $INITRD_DIR/init
chmod 777 $INITRD_DIR
cd $INITRD_DIR
for package in $packages; do
apk fetch -s "$package" > "$INITRD_DIR/$package.apk"
tar -xzf "$INITRD_DIR/$package.apk" -C $INITRD_DIR
rm "$INITRD_DIR/$package.apk"
apt download "$package" --allow-unauthenticated
done
for deb in *.deb; do
echo "$deb"
dpkg-deb -x "$deb" .
rm "$deb"
done
cd ../..
#apk update
#if [ $LUKS_ENABLED = "yes" ]; then
# cp config/01-initramfs/init $INITRD_DIR/init
# packages="busybox musl cryptsetup cryptsetup-libs popt libuuid libblkid
# device-mapper-libs libcrypto3 argon2-libs json-c libeconf
# udev kmod-libs zlib xz-libs zstd-libs"
#else
# cp config/01-initramfs/init_no_luks $INITRD_DIR/init
# packages="busybox musl libblkid libeconf libcrypto3
# udev kmod-libs zlib xz-libs zstd-libs"
#fi
#chmod +x $INITRD_DIR/init
#for package in $packages; do
# apk fetch -s "$package" > "$INITRD_DIR/$package.apk"
# tar -xzf "$INITRD_DIR/$package.apk" -C $INITRD_DIR
# rm "$INITRD_DIR/$package.apk"
#done
echo "[Create filesystem...]"
mkdir -p "$ROOTFS_DIR"
apk add --initdb --root "$ROOTFS_DIR"
cp /etc/apk/repositories "$ROOTFS_DIR/etc/apk/repositories"
#apk add --initdb --root "$ROOTFS_DIR"
#cp /etc/apk/repositories "$ROOTFS_DIR/etc/apk/repositories"
echo "[Installing packages...]"
apk update --root "$ROOTFS_DIR" --allow-untrusted
apk add --root "$ROOTFS_DIR" --allow-untrusted $(cat config/02-packages_install/packages) &>/dev/null
debootstrap --arch=amd64 focal $ROOTFS_DIR http://archive.ubuntu.com/ubuntu/
chroot $ROOTFS_DIR /bin/bash -c "
apt update &&
DEBIAN_FRONTEND=noninteractive apt install -y \$(cat config/02-packages_install/packages)"
echo "[Installing kernel...]"
chroot $ROOTFS_DIR /bin/bash -c "
apt update &&
DEBIAN_FRONTEND=noninteractive apt install -y --no-install-recommends linux-image-generic"
# &&
#update-initramfs -c -k all"
#apk update --root "$ROOTFS_DIR" --allow-untrusted
#apk add --root "$ROOTFS_DIR" --allow-untrusted $(cat config/02-packages_install/packages) &>/dev/null
mkdir -p $INITRD_DIR/lib
cp -r $ROOTFS_DIR/lib/modules $INITRD_DIR/lib/
......@@ -219,14 +252,14 @@ else
cp "$SQUASHFS" "$ISO_DIR/squash.rootfs"
fi
echo "[Create iso...]"
mkdir -p "$ISO_DIR/EFI/BOOT"
chown -R root:root $ISO_DIR
cp /usr/share/limine/BOOTX64.EFI "$ISO_DIR/EFI/BOOT/"
cp /usr/share/limine/*.bin "$ISO_DIR/"
cp /usr/share/limine/*.sys "$ISO_DIR/"
cp /opt/limine/BOOTX64.EFI "$ISO_DIR/EFI/BOOT/"
cp /opt/limine/*.bin "$ISO_DIR/"
cp /opt/limine/*.sys "$ISO_DIR/"
cp config/00-bootloader/limine.cfg "$ISO_DIR/limine.cfg"
......@@ -237,4 +270,4 @@ xorriso -as mkisofs -R -r -J -b "limine-bios-cd.bin" \
-volid "NEXUSCLIENTISO" \
"$ISO_DIR" -o image.iso
limine bios-install image.iso
#limine bios-install image.iso
......@@ -2,6 +2,6 @@ TIMEOUT=0
:AlpineLinux
PROTOCOL=linux
KERNEL_PATH=boot:///boot/vmlinuz-lts
KERNEL_CMDLINE=quiet
KERNEL_PATH=boot:///boot/vmlinuz-5.4.0-26-generic
KERNEL_CMDLINE=quiet console=ttyS0
MODULE_PATH=boot:///boot/initrd
......@@ -24,6 +24,8 @@ modprobe ata_piix
modprobe cdrom
modprobe loop
/bin/sh
udevadm trigger
echo "Mounting cdrom..."
......
linux-lts
linux-generic
linux-firmware
linux-firmware-other
alpine-base
eudev
networkmanager
networkmanager-tui
xorg-server
xf86-input-libinput
xinit
xfce4
xfce4-terminal
elogind
polkit-elogind
adwaita-icon-theme
agetty
dbus
dbus-x11
virt-viewer
mesa-dri-gallium
ip6tables
ufw
sudo
vim
ubuntu-minimal
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment