FROM archlinux:base-devel AS build RUN pacman -Syu --noconfirm RUN pacman -S --noconfirm rustup clang openssl tpm2-tss RUN rustup toolchain install nightly RUN rustup default nightly RUN mkdir -p src/crates COPY ./crates /src/crates COPY Cargo.toml /src/ COPY Cargo.lock /src/ WORKDIR /src RUN cargo fetch --target x86_64-unknown-linux-gnu WORKDIR /src/crates/btfsd RUN cargo build --release FROM archlinux:base AS release RUN pacman -Syu --noconfirm\ && pacman -S --noconfirm openssl tpm2-tss swtpm tpm2-abrmd dbus\ && pacman -Scc --noconfirm\ && useradd btfsd\ && mkdir -p /app/state\ && chown btfsd:btfsd /app/state COPY --from=build /src/target/release/btfsd /app/ COPY --from=build /src/crates/btfsd/btfsd_init.sh /init.sh USER btfsd ENTRYPOINT ["/init.sh"]