Files
initrd/Dockerfile

40 lines
1.3 KiB
Docker
Raw Normal View History

2024-04-29 12:54:25 +02:00
from rust:1.88.0-alpine as rust
2023-11-27 14:40:15 +01:00
run apk add --no-cache git musl-dev libudev-zero-dev openssl-dev cryptsetup-dev lvm2-dev clang-libs clang-dev
2023-11-27 14:40:15 +01:00
2024-04-29 12:54:25 +02:00
workdir /src
2023-11-27 14:40:15 +01:00
copy . .
2024-04-29 12:54:25 +02:00
run --mount=type=cache,id=novit-rs,target=/usr/local/cargo/registry \
--mount=type=cache,id=novit-rs-target,sharing=private,target=/src/target \
RUSTFLAGS="-C target-feature=-crt-static" cargo install --path . --root /dist
2023-11-27 14:40:15 +01:00
# ------------------------------------------------------------------------
2024-04-29 12:54:25 +02:00
from alpine:3.22.0 as initrd
run apk add zstd lz4
2023-12-17 14:28:32 +01:00
2024-04-29 12:54:25 +02:00
workdir /system
2023-11-27 14:40:15 +01:00
2024-01-21 15:26:00 +01:00
run . /etc/os-release \
&& wget -O- https://dl-cdn.alpinelinux.org/alpine/v${VERSION_ID%.*}/releases/x86_64/alpine-minirootfs-${VERSION_ID}-x86_64.tar.gz |tar zxv
2023-11-27 14:40:15 +01:00
run apk add --no-cache --update -p . musl libgcc coreutils \
2024-04-29 12:54:25 +02:00
lvm2 lvm2-extra lvm2-dmeventd udev cryptsetup \
2025-07-06 15:43:42 +02:00
e2fsprogs lsblk openssl openssh-server wireguard-tools-wg-quick \
2024-04-29 12:54:25 +02:00
&& rm -rf usr/share/apk var/cache/apk etc/motd
copy etc/sshd_config etc/ssh/sshd_config
2023-11-27 14:40:15 +01:00
copy --from=rust /dist/bin/init /system/init
2024-04-29 12:54:25 +02:00
run mkdir -p bin run var/log; cd bin && for cmd in init-version init-connect bootstrap; do ln -s ../init $cmd; done
2023-11-27 14:40:15 +01:00
# check viability
run chroot . init-version
2023-11-27 14:40:15 +01:00
2025-07-06 15:43:42 +02:00
run find * |cpio -H newc -oF /initrd
2023-12-17 14:28:32 +01:00
# ------------------------------------------------------------------------
2024-04-29 12:54:25 +02:00
from alpine:3.22.0
2023-12-17 14:28:32 +01:00
copy --from=initrd /initrd /
entrypoint ["base64","/initrd"]