From 3be9dfbcf0bde14f93b45b405cdd8ee594afd4ef Mon Sep 17 00:00:00 2001 From: HoraceZhang Date: Fri, 18 Oct 2024 15:46:11 +0800 Subject: [PATCH] Create Dockerfile.fix fix official git Dockerfile --- Dockerfile.fix | 82 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 82 insertions(+) create mode 100644 Dockerfile.fix diff --git a/Dockerfile.fix b/Dockerfile.fix new file mode 100644 index 0000000..1c96e87 --- /dev/null +++ b/Dockerfile.fix @@ -0,0 +1,82 @@ +FROM golang:1.22.4-bullseye as build-base + +ENV PATH="${PATH}:/root/.cargo/bin/" + +# Install GMP 6.2 (6.3 which MacOS is using only available on Debian unstable) +RUN apt-get update && apt-get install -y \ + libgmp-dev \ + && rm -rf /var/lib/apt/lists/* + +COPY docker/rustup-init.sh /opt/rustup-init.sh + +RUN /opt/rustup-init.sh -y --profile minimal + +# Install uniffi-bindgen-go +RUN cargo install uniffi-bindgen-go --git https://github.com/NordSecurity/uniffi-bindgen-go --tag v0.2.1+v0.25.0 + +FROM build-base as build + +ENV GOEXPERIMENT=arenas +ENV QUILIBRIUM_SIGNATURE_CHECK=false + +WORKDIR /opt/ceremonyclient + +COPY . . + +## Generate Rust bindings for VDF +WORKDIR /opt/ceremonyclient/vdf +RUN ./generate.sh + +## Generate Rust bindings for BLS48581 +WORKDIR /opt/ceremonyclient/bls48581 +RUN ./generate.sh + +# Build and install the node +WORKDIR /opt/ceremonyclient/node + +RUN ./build.sh && cp node /go/bin +RUN go install github.com/fullstorydev/grpcurl/cmd/grpcurl@latest + +# Build and install qclient +WORKDIR /opt/ceremonyclient/client + +RUN ./build.sh -o qclient && cp qclient /go/bin + +# Allows exporting single binary +FROM scratch as qclient +COPY --from=build /go/bin/qclient /qclient +ENTRYPOINT [ "/qclient" ] + +# Allows exporting single binary +FROM scratch AS node +COPY --from=build /go/bin/node /node +ENTRYPOINT [ "/node" ] + +FROM debian:bullseye + +ARG NODE_VERSION +ARG GIT_REPO +ARG GIT_BRANCH +ARG GIT_COMMIT + +ENV GOEXPERIMENT=arenas + +RUN apt update && apt install ca-certificates && rm -rf /var/lib/apt/lists/* + +LABEL org.opencontainers.image.title="Quilibrium Network Node" +LABEL org.opencontainers.image.description="Quilibrium is a decentralized alternative to platform as a service providers." +LABEL org.opencontainers.image.version=$NODE_VERSION +LABEL org.opencontainers.image.vendor=Quilibrium +LABEL org.opencontainers.image.url=https://quilibrium.com/ +LABEL org.opencontainers.image.documentation=https://quilibrium.com/docs +LABEL org.opencontainers.image.source=$GIT_REPO +LABEL org.opencontainers.image.ref.name=$GIT_BRANCH +LABEL org.opencontainers.image.revision=$GIT_COMMIT + +COPY --from=build /go/bin/node /usr/local/bin +COPY --from=build /go/bin/grpcurl /usr/local/bin +COPY --from=build /opt/ceremonyclient/client/qclient /usr/local/bin + +WORKDIR /root + +ENTRYPOINT ["node"]