- Flattened nested bootupd/bootupd/ structure to root level - Moved all core project files to root directory - Added proper Debian packaging structure (debian/ directory) - Created build scripts and CI configuration - Improved project organization for CI/CD tools - All Rust source, tests, and configuration now at root level - Added GitHub Actions workflow for automated testing - Maintained all original functionality while improving structure
28 lines
1 KiB
Docker
Executable file
28 lines
1 KiB
Docker
Executable file
# Build from the current git into a c9s-bootc container image.
|
|
# Use e.g. --build-arg=base=quay.io/fedora/fedora-bootc:41 to target
|
|
# Fedora or another base image instead.
|
|
#
|
|
ARG base=quay.io/centos-bootc/centos-bootc:stream9
|
|
|
|
FROM $base as build
|
|
# This installs our package dependencies, and we want to cache it independently of the rest.
|
|
# Basically we don't want changing a .rs file to blow out the cache of packages.
|
|
RUN <<EORUN
|
|
set -xeuo pipefail
|
|
dnf -y install cargo git openssl-devel
|
|
EORUN
|
|
# Now copy the source
|
|
COPY . /build
|
|
WORKDIR /build
|
|
# See https://www.reddit.com/r/rust/comments/126xeyx/exploring_the_problem_of_faster_cargo_docker/
|
|
# We aren't using the full recommendations there, just the simple bits.
|
|
RUN --mount=type=cache,target=/build/target --mount=type=cache,target=/var/roothome \
|
|
make && make install-all DESTDIR=/out
|
|
|
|
FROM $base
|
|
# Clean out the default to ensure we're using our updated content
|
|
RUN rpm -e bootupd
|
|
COPY --from=build /out/ /
|
|
# Sanity check this too
|
|
RUN bootc container lint --fatal-warnings
|
|
|