- Fixed build system to clone source repositories instead of downloading binaries - Enhanced scripts/fetch-github.sh with proper git repo cloning and branch handling - Updated scripts/compile-components.sh for RFS compilation with build-binary feature - Added minimal firmware installation for essential network drivers (73 modules) - Created comprehensive zinit configuration set (15 config files including getty) - Added util-linux package for getty/agetty console support - Optimized package selection for minimal 27MB initramfs footprint - Successfully builds bootable vmlinuz.efi with embedded initramfs - Confirmed working: VM boot, console login, network drivers, zinit init system Components: - initramfs.cpio.xz: 27MB compressed minimal Zero-OS image - vmlinuz.efi: 35MB bootable kernel with embedded initramfs - Complete Zero-OS toolchain: zinit, rfs, mycelium compiled from source
22 lines
517 B
Docker
22 lines
517 B
Docker
FROM rust:slim as builder
|
|
|
|
WORKDIR /src
|
|
|
|
COPY rfs /src/rfs
|
|
COPY Cargo.toml .
|
|
COPY Cargo.lock .
|
|
COPY config.toml .
|
|
|
|
RUN apt-get update && apt-get install curl build-essential libssl-dev musl-tools -y
|
|
RUN rustup target add x86_64-unknown-linux-musl
|
|
RUN cargo build --release --target=x86_64-unknown-linux-musl
|
|
|
|
FROM alpine:3.19
|
|
|
|
WORKDIR /app
|
|
|
|
COPY --from=builder /src/target/x86_64-unknown-linux-musl/release/rfs .
|
|
COPY --from=builder /src/config.toml .
|
|
|
|
ENTRYPOINT [ "./rfs", "server", "--config-path", "config.toml"]
|