Sfoglia il codice sorgente

Dockerfile added for Fedora, Alpine, Debian (#83)

* Dockerfile added for Fedora, Alpine, Debian

* Dockerfiles moved to ./contrib/docker, "." filter needed for jq in debian-buster

* Deleted dockerfiles from old dir, "." filter needed for jq in debian-buster
spital 4 anni fa
parent
commit
0210758f67

+ 44 - 0
contrib/docker/Dockerfile.alpine

@@ -0,0 +1,44 @@
+# 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}
+
+ARG RUST_VER=1.61
+ARG ALPINE_VER=3.16
+
+FROM rust:${RUST_VER}-alpine${ALPINE_VER}
+
+ARG RUST_VER
+ARG ALPINE_VER
+
+RUN echo "=======================================================" \
+    &&echo "===>>>>> The following error will occur during the test::" \
+    && echo "process didn't exit successfully: /opt/darkfi/target/release/deps/darkfi-7ff55152bc1bdc59 (signal: 11, SIGSEGV: invalid memory reference)" \
+    && echo "rust ${RUST_VER} / alpine ${ALPINE_VER}" \
+    && rustc -V && cargo -V \
+    && cat /etc/os-release  \
+    && echo "====>>>>> wait 30 sec to continue; CTRL+C to break" \
+    && sleep 30
+
+RUN apk update
+
+RUN apk add cmake jq wget clang curl gcc make
+RUN apk add llvm-dev openssl-dev expat-dev freetype-dev
+RUN apk add libudev-zero-dev libgudev-dev
+RUN apk add pkgconf clang-dev
+
+RUN apk add build-base
+
+# musl-dev was enough, maybe libc-dev too
+
+RUN mkdir /opt/darkfi
+
+COPY . /opt/darkfi
+
+WORKDIR /opt/darkfi
+
+RUN make clean
+
+RUN rm -rf ./target/*
+
+RUN make -j test
+

+ 40 - 0
contrib/docker/Dockerfile.debian

@@ -0,0 +1,40 @@
+
+# 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
+
+ARG RUST_VER=1.61  # 1.60
+ARG BUILD_OS_VER=slim-bullseye  # slim-buster
+ARG RUN_OS_VER=bullseye-slim    # buster-slim
+
+FROM rust:${RUST_VER}-${BUILD_OS_VER} as builder
+
+RUN apt-get -y update
+
+RUN apt-get install -y build-essential cmake jq wget pkg-config \
+    clang libclang-dev llvm-dev libudev-dev libfreetype6-dev \
+    libexpat1-dev curl gcc make libssl-dev
+
+RUN mkdir /opt/darkfi
+
+COPY . /opt/darkfi
+
+WORKDIR /opt/darkfi
+
+RUN make clean
+
+RUN rm -rf ./target/*
+
+RUN bash -c 'make -j test &&  make -j all'
+
+# 2. stage
+FROM debian:${RUN_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/
+
+WORKDIR /opt/darkfi

+ 35 - 0
contrib/docker/Dockerfile.fedora

@@ -0,0 +1,35 @@
+
+# Use: docker build . -t darkfi:fedora -f ./contrib/docker/Dockerfile.fedora
+#   optionally with: --build-arg OS_VER=fedora:35
+
+ARG OS_VER=fedora:36  # fedora:35
+
+FROM ${OS_VER} as builder
+
+RUN dnf -y install cargo rustc 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
+
+COPY . /opt/darkfi
+
+WORKDIR /opt/darkfi
+
+RUN make clean
+
+RUN rm -rf ./target/*
+
+RUN bash -c 'make -j test &&  make -j all'
+
+# 2. 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/
+
+WORKDIR /opt/darkfi

+ 1 - 1
contrib/token/Makefile

@@ -17,7 +17,7 @@ SOL   = https://github.com/solana-labs/token-list/raw/main/src/tokens/solana.tok
 all: $(LISTS_MIN)
 
 .json.min.json:
-	jq -r -c < $< > $@
+	jq -r -c '.' < $< > $@
 
 darkfi_token_list.json:
 	git checkout -- $@