Dockerfile.fedora 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. # Use: docker build . --pull --network=host -t darkfi:fedora -f ./contrib/docker/Dockerfile.fedora
  2. # optionally with: --build-arg OS_VER=fedora:36 --build-arg RUST_VER=nightly
  3. ARG RUST_VER=1.65 # stable nightly beta
  4. ARG OS_VER=fedora:37 # fedora:36
  5. FROM ${OS_VER} as rust_builder
  6. ARG RUST_VER
  7. RUN dnf -y install gcc gcc-c++ kernel-headers cmake jq wget \
  8. pkg-config clang clang-libs llvm-libs \
  9. openssl-devel findutils fontconfig-devel \
  10. lato-fonts
  11. ## TODO ?? ?? cargo rustc rust-libudev-devel rust-freetype-rs-devel rust-expat-sys-devel
  12. RUN curl https://sh.rustup.rs -sSf | bash -s -- -y --default-toolchain "${RUST_VER}"
  13. ENV PATH="/root/.cargo/bin:${PATH}"
  14. RUN cargo search whatever # creates .cargo cache
  15. # 2. stage
  16. FROM rust_builder as builder
  17. WORKDIR /opt/darkfi
  18. COPY . /opt/darkfi
  19. RUN make clean
  20. RUN rm -rf ./target/*
  21. RUN bash -c 'make -j test && make -j all'
  22. # 3. stage
  23. FROM ${OS_VER}
  24. RUN dnf -y install openssl lato-fonts
  25. WORKDIR /opt/darkfi
  26. COPY --from=builder /opt/darkfi/drk /opt/darkfi/darkfid /opt/darkfi/tau /opt/darkfi/taud \
  27. /opt/darkfi/ircd /opt/darkfi/dnetview /opt/darkfi/darkotc /opt/darkfi/darkwikid \
  28. /opt/darkfi/darkwiki /opt/darkfi/zkas /opt/darkfi/dao /opt/darkfi/daod ./