mirror of
https://github.com/darkrenaissance/darkfi.git
synced 2026-01-08 22:28:12 -05:00
contrib/docker: musl static docker builded added
This commit is contained in:
1
.gitignore
vendored
1
.gitignore
vendored
@@ -42,6 +42,7 @@ python-venv
|
|||||||
/darkwikid
|
/darkwikid
|
||||||
/zktool
|
/zktool
|
||||||
/riscv-bins
|
/riscv-bins
|
||||||
|
/static-bins
|
||||||
|
|
||||||
# tags, ctags, rusty-tags
|
# tags, ctags, rusty-tags
|
||||||
TAGS
|
TAGS
|
||||||
|
|||||||
63
contrib/docker/static.Dockerfile
Normal file
63
contrib/docker/static.Dockerfile
Normal file
@@ -0,0 +1,63 @@
|
|||||||
|
# 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/* ./
|
||||||
Reference in New Issue
Block a user