initial stagex building example

This commit is contained in:
Lance Vick 2024-03-05 01:45:33 -08:00
parent 37f63fd63a
commit cec12749a9
Signed by: lrvick
GPG Key ID: 8E47A1EC35A1551D
2 changed files with 41 additions and 1 deletions

37
Containerfile Normal file
View File

@ -0,0 +1,37 @@
FROM scratch AS base
FROM base AS fetch
COPY --from=stagex/rust . /
COPY --from=stagex/busybox . /
COPY --from=stagex/musl . /
COPY --from=stagex/gcc . /
COPY --from=stagex/llvm . /
COPY --from=stagex/libunwind . /
COPY --from=stagex/openssl . /
COPY --from=stagex/zlib . /
COPY --from=stagex/ca-certificates . /
ADD . /src
WORKDIR /src
RUN cargo fetch
FROM fetch AS build
COPY --from=stagex/clang . /
COPY --from=stagex/linux-headers . /
COPY --from=stagex/gmp . /
COPY --from=stagex/nettle . /
COPY --from=stagex/pcsc-lite . /
COPY --from=stagex/pkgconf . /
COPY --from=stagex/binutils . /
ENV NETTLE_STATIC=yes
ENV PCSC_LIB_NAME=static=pcsclite
ENV RUSTFLAGS='-C codegen-units=1'
RUN --network=none \
cargo build \
--frozen \
--release \
--features static \
--target x86_64-unknown-linux-musl \
--bin keyfork
FROM scratch AS install
COPY --from=build keyfork/target/release/keyfork /keyfork

View File

@ -1,5 +1,5 @@
.PHONY: default .PHONY: default
default: docs/book default: out/keyfork docs/book
BASE_REF ?= main BASE_REF ?= main
HEAD_REF ?= HEAD HEAD_REF ?= HEAD
@ -13,6 +13,9 @@ define clone-repo
test `git -C $(1) rev-parse HEAD` = $(3) test `git -C $(1) rev-parse HEAD` = $(3)
endef endef
out/keyfork: Cargo.toml Cargo.lock crates $(shell git ls-files crates)
docker build --progress=plain --output out/ -f Containerfile .
docs/book: docs/src/links.md $(shell find docs/src -type f -name '*.md') docs/book: docs/src/links.md $(shell find docs/src -type f -name '*.md')
mdbook build docs mdbook build docs
mkdir -p docs/book/rustdoc mkdir -p docs/book/rustdoc