btfsd.Dockerfile 783 B

12345678910111213141516171819202122232425
  1. FROM archlinux:base-devel AS build
  2. RUN pacman -Syu --noconfirm
  3. RUN pacman -S --noconfirm rustup clang openssl tpm2-tss
  4. RUN rustup toolchain install nightly
  5. RUN rustup default nightly
  6. RUN mkdir -p src/crates
  7. COPY ./crates /src/crates
  8. COPY Cargo.toml /src/
  9. COPY Cargo.lock /src/
  10. WORKDIR /src
  11. RUN cargo fetch --target x86_64-unknown-linux-gnu
  12. WORKDIR /src/crates/btfsd
  13. RUN cargo build --release
  14. FROM archlinux:base AS release
  15. RUN pacman -Syu --noconfirm\
  16. && pacman -S --noconfirm openssl tpm2-tss swtpm tpm2-abrmd dbus\
  17. && pacman -Scc --noconfirm\
  18. && useradd btfsd\
  19. && mkdir -p /app/state\
  20. && chown btfsd:btfsd /app/state
  21. COPY --from=build /src/target/release/btfsd /app/
  22. COPY --from=build /src/crates/btfsd/btfsd_init.sh /init.sh
  23. USER btfsd
  24. ENTRYPOINT ["/init.sh"]