| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- # Usage(on repo root folder):
- # docker build . --pull --no-cache --shm-size=196m -t darkfi:static -f ./contrib/docker/static.Dockerfile -o static-bins
- # Optionally, add arguments like: --build-arg BINS=darkirc
- # If you want to keep building using the same builder, remove --no-cache option.
- # Arguments configuration
- ARG ALPINE_VER=edge
- ARG SQLCIPHER_VER=4.5.5
- ARG RUST_VER=nightly
- #TODO: only darkirc, taud and lilith has been tested, have to check rest binaries to add deps.
- ARG BINS="darkirc taud lilith"
- # Environment setup
- FROM alpine:${ALPINE_VER} as builder
- ## Arguments import
- ARG SQLCIPHER_VER
- ARG RUST_VER
- ARG BINS
- ## Install system dependencies
- RUN apk update
- RUN apk add rustup git musl-dev make gcc openssl-dev openssl-libs-static tcl-dev zlib-static
- ## Setup SQLCipher
- RUN wget -O sqlcipher.tar.gz https://github.com/sqlcipher/sqlcipher/archive/refs/tags/v${SQLCIPHER_VER}.tar.gz && \
- tar xf sqlcipher.tar.gz && \
- rm sqlcipher.tar.gz && \
- mv sqlcipher-${SQLCIPHER_VER} sqlcipher && \
- cd sqlcipher && \
- ./configure --prefix=/usr/local --disable-shared --enable-static --enable-cross-thread-connections --enable-releasemode && \
- make -j$(nproc) && \
- make install
- ## Configure Rust
- RUN rustup-init --default-toolchain none -y
- ENV PATH "${PATH}:/root/.cargo/bin/"
- RUN rustup default ${RUST_VER}
- RUN rustup target add wasm32-unknown-unknown
- # Build binaries
- FROM builder as rust_builder
- WORKDIR /opt/darkfi
- COPY . /opt/darkfi
- RUN sed -e 's,^#RUSTFLAGS ,RUSTFLAGS ,' -i Makefile
- RUN make clean && make ${BINS} && mkdir compiled-bins && \
- (if [ -e zkas ]; then cp -a zkas compiled-bins/; fi;) && \
- (if [ -e darkfid ]; then cp -a darkfid compiled-bins/; fi;) && \
- (if [ -e darkfid2 ]; then cp -a darkfid2 compiled-bins/; fi;) && \
- (if [ -e faucetd ]; then cp -a faucetd compiled-bins/; fi;) && \
- (if [ -e darkirc ]; then cp -a darkirc compiled-bins/; fi;) && \
- (if [ -e "genev-cli" ]; then cp -a genev-cli compiled-bins/; fi;) && \
- (if [ -e genevd ]; then cp -a genevd compiled-bins/; fi;) && \
- (if [ -e lilith ]; then cp -a lilith compiled-bins/; fi;) && \
- (if [ -e "tau-cli" ]; then cp -a tau-cli compiled-bins/; fi;) && \
- (if [ -e taud ]; then cp -a taud compiled-bins/; fi;) && \
- (if [ -e vanityaddr ]; then cp -a vanityaddr compiled-bins/; fi;)
- # Export binaries from rust builder
- FROM scratch
- COPY --from=rust_builder /opt/darkfi/compiled-bins/* ./
|