diff --git a/contrib/dependency_setup.sh b/contrib/dependency_setup.sh index 3495005f4..0b14eed2f 100644 --- a/contrib/dependency_setup.sh +++ b/contrib/dependency_setup.sh @@ -37,7 +37,7 @@ setup_xbps() { } setup_dnf() { - dnf_deps="git make jq gcc pkg-config openssl-devel findutils" + dnf_deps="git make jq gcc pkg-config openssl-devel findutils lato-fonts" $1 install -y "$dnf_deps" || return 1 } diff --git a/contrib/docker/Dockerfile.alpine b/contrib/docker/Dockerfile.alpine index 713930762..f4ce461dc 100644 --- a/contrib/docker/Dockerfile.alpine +++ b/contrib/docker/Dockerfile.alpine @@ -1,8 +1,8 @@ # Use: docker build . -t darkfi:alpine${alpine_ver}_rust${rust_ver} -f ./contrib/docker/Dockerfile.alpine # optionally with: --build-arg ALPINE_VER=$alpine_ver --build-arg RUST_VER=$rust_ver -# The wallet test fail problem (see below) was the same for alpine {3.14,3.15,3.16} and rust {1.60,1.61,1.62} +# The wallet test fail problem (see below) was the same for alpine 3.16 and rust 1.65 -ARG RUST_VER=1.64 +ARG RUST_VER=1.65 ARG ALPINE_VER=3.16 FROM rust:${RUST_VER}-alpine${ALPINE_VER} diff --git a/contrib/docker/Dockerfile.debian b/contrib/docker/Dockerfile.debian index c0051581f..74a887003 100644 --- a/contrib/docker/Dockerfile.debian +++ b/contrib/docker/Dockerfile.debian @@ -1,9 +1,9 @@ # Use: docker build . -t darkfi:debian -f ./contrib/docker/Dockerfile.debian -# optionally with: --build-arg BUILD_OS_VER=slim-buster --build-arg RUN_OS_VER=buster-slim --build-arg RUST_VER=1.60 +# optionally with: --build-arg BUILD_OS_VER=slim-buster --build-arg RUN_OS_VER=buster-slim --build-arg RUST_VER=1.65 # rust nightly with: BUILD_OS_VER=bullseye-slim RUN_OS_VER=bullseye-slim RUST_VER=nightly REPOSITORY=rustlang/rust -ARG RUST_VER=1.64 # 1.60 1.61 1.62 +ARG RUST_VER=1.65 # ARG BUILD_OS_VER=slim-bullseye # slim-buster ARG RUN_OS_VER=bullseye-slim # buster-slim ARG REPOSITORY=rust # rustlang/rust @@ -32,12 +32,8 @@ FROM debian:${RUN_OS_VER} RUN apt-get -y update && apt-get install -y openssl fonts-lato \ && rm -rf /var/lib/apt/lists/* -COPY --from=builder /opt/darkfi/darkfid /opt/darkfi/ -COPY --from=builder /opt/darkfi/dnetview /opt/darkfi/ -COPY --from=builder /opt/darkfi/drk /opt/darkfi/ -COPY --from=builder /opt/darkfi/ircd /opt/darkfi/ -COPY --from=builder /opt/darkfi/tau /opt/darkfi/ -COPY --from=builder /opt/darkfi/taud /opt/darkfi/ -COPY --from=builder /opt/darkfi/zkas /opt/darkfi/ - WORKDIR /opt/darkfi + +COPY --from=builder /opt/darkfi/drk /opt/darkfi/darkfid /opt/darkfi/tau /opt/darkfi/taud \ + /opt/darkfi/ircd /opt/darkfi/dnetview /opt/darkfi/darkotc /opt/darkfi/darkwikid \ + /opt/darkfi/darkwiki /opt/darkfi/zkas /opt/darkfi/dao /opt/darkfi/daod ./ diff --git a/contrib/docker/Dockerfile.fedora b/contrib/docker/Dockerfile.fedora index 9bd272076..eefc0df3f 100644 --- a/contrib/docker/Dockerfile.fedora +++ b/contrib/docker/Dockerfile.fedora @@ -1,35 +1,47 @@ -# Use: docker build . -t darkfi:fedora -f ./contrib/docker/Dockerfile.fedora -# optionally with: --build-arg OS_VER=fedora:35 +# Use: docker build . --pull --network=host -t darkfi:fedora -f ./contrib/docker/Dockerfile.fedora +# optionally with: --build-arg OS_VER=fedora:36 --build-arg RUST_VER=nightly -ARG OS_VER=fedora:36 # fedora:35 +ARG RUST_VER=1.65 # stable nightly beta +ARG OS_VER=fedora:37 # fedora:36 -FROM ${OS_VER} as builder +FROM ${OS_VER} as rust_builder -RUN dnf -y install cargo rustc gcc gcc-c++ kernel-headers cmake jq wget \ +ARG RUST_VER + +RUN dnf -y install gcc gcc-c++ kernel-headers cmake jq wget \ pkg-config clang clang-libs llvm-libs \ - rust-libudev-devel rust-freetype-rs-devel \ - rust-expat-sys-devel openssl-devel findutils fontconfig-devel + openssl-devel findutils fontconfig-devel \ + lato-fonts -COPY . /opt/darkfi +## TODO ?? ?? cargo rustc rust-libudev-devel rust-freetype-rs-devel rust-expat-sys-devel + +RUN curl https://sh.rustup.rs -sSf | bash -s -- -y --default-toolchain "${RUST_VER}" + +ENV PATH="/root/.cargo/bin:${PATH}" + +RUN cargo search whatever # creates .cargo cache + +# 2. stage +FROM rust_builder as builder WORKDIR /opt/darkfi +COPY . /opt/darkfi + RUN make clean RUN rm -rf ./target/* RUN bash -c 'make -j test && make -j all' -# 2. stage +# 3. stage FROM ${OS_VER} -COPY --from=builder /opt/darkfi/darkfid /opt/darkfi/ -COPY --from=builder /opt/darkfi/dnetview /opt/darkfi/ -COPY --from=builder /opt/darkfi/drk /opt/darkfi/ -COPY --from=builder /opt/darkfi/ircd /opt/darkfi/ -COPY --from=builder /opt/darkfi/tau /opt/darkfi/ -COPY --from=builder /opt/darkfi/taud /opt/darkfi/ -COPY --from=builder /opt/darkfi/zkas /opt/darkfi/ +RUN dnf -y install openssl lato-fonts WORKDIR /opt/darkfi + +COPY --from=builder /opt/darkfi/drk /opt/darkfi/darkfid /opt/darkfi/tau /opt/darkfi/taud \ + /opt/darkfi/ircd /opt/darkfi/dnetview /opt/darkfi/darkotc /opt/darkfi/darkwikid \ + /opt/darkfi/darkwiki /opt/darkfi/zkas /opt/darkfi/dao /opt/darkfi/daod ./ diff --git a/contrib/docker/Dockerfile.ubuntu b/contrib/docker/Dockerfile.ubuntu index 23ad2336c..b21e262f4 100644 --- a/contrib/docker/Dockerfile.ubuntu +++ b/contrib/docker/Dockerfile.ubuntu @@ -1,8 +1,8 @@ # Use: docker build . --network=host --pull -t darkfi:ubuntu -f ./contrib/docker/Dockerfile.ubuntu -# optionally with: --build-arg BUILD_OS_VER=20.04 --build-arg RUST_VER=1.64 +# optionally with: --build-arg BUILD_OS_VER=20.04 --build-arg RUST_VER=1.65 -ARG RUST_VER=1.65 # stable nightly beta 1.64 +ARG RUST_VER=1.65 # stable nightly beta ARG BUILD_OS_VER=22.04 # 20.04 ARG RUN_OS_VER=${BUILD_OS_VER} ARG REPOSITORY=ubuntu @@ -22,21 +22,20 @@ ENV PATH="/root/.cargo/bin:${PATH}" RUN cargo search whatever # creates .cargo cache -FROM rust_builder - -RUN mkdir /opt/darkfi - -COPY . /opt/darkfi +# 2. stage +FROM rust_builder as builder WORKDIR /opt/darkfi +COPY . /opt/darkfi + RUN make clean RUN rm -rf ./target/* RUN bash -c 'make -j test && make -j all' -# 2. stage +# 3. stage FROM ${REPOSITORY}:${RUN_OS_VER} RUN apt-get -y update && apt-get install -y openssl fonts-lato \ @@ -46,5 +45,5 @@ WORKDIR /opt/darkfi COPY --from=builder /opt/darkfi/drk /opt/darkfi/darkfid /opt/darkfi/tau /opt/darkfi/taud \ /opt/darkfi/ircd /opt/darkfi/dnetview /opt/darkfi/darkotc /opt/darkfi/darkwikid \ - /opt/darkfi/darkwiki /opt/darkfi/zkas ./ + /opt/darkfi/darkwiki /opt/darkfi/zkas /opt/darkfi/dao /opt/darkfi/daod ./