feat: Create minimal Zero-OS initramfs with console support
- 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
This commit is contained in:
@@ -2,22 +2,20 @@ FROM rust:slim as builder
|
||||
|
||||
WORKDIR /src
|
||||
|
||||
COPY fl-server /src/fl-server
|
||||
COPY rfs /src/rfs
|
||||
COPY docker2fl /src/docker2fl
|
||||
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 --bin fl-server --target=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/fl-server .
|
||||
COPY --from=builder /src/target/x86_64-unknown-linux-musl/release/rfs .
|
||||
COPY --from=builder /src/config.toml .
|
||||
|
||||
ENTRYPOINT [ "./fl-server", "--config-path", "config.toml"]
|
||||
ENTRYPOINT [ "./rfs", "server", "--config-path", "config.toml"]
|
||||
|
||||
Reference in New Issue
Block a user