ARG VERSION="0.19.1" ARG LEGACY_BITCOIN_CORE_RELEASE_KEY="01EA5486DE18A882D4C2684590C8019E36C2E964" ARG ANDREW_CHOW="152812300785C96444D3334D17565732E08E5E41" ARG JON_ATACK="82921A4B88FD454B7EB8CE3C796C4109063D4EAF" ARG JONAS_SCHNELLI="32EE5C4C3FA15CCADB46ABE529D4BCB6416F53EC" ARG MATT_CORALLO="07DF3E57A548CCFB7530709189BBB8663E2E65CE" ARG LUKE_DASHJR="E463A93F5F3117EEDE6C7316BD02942421F4889F" ARG PETER_TODD="37EC7D7B0A217CDB4B4E007E7FAB114267E4FA04" ARG PIETER_WUILLE="133EAC179436F14A5CF1B794860FEB804E669320" ARG SJORS_PROVOOST="ED9BDF7AD6A55E232E84524257FF9BDBCC301009" ARG KEYS="${LEGACY_BITCOIN_CORE_RELEASE_KEY} ${ANDREW_CHOW} ${JON_ATACK} ${JONAS_SCHNELLI} ${MATT_CORALLO} ${LUKE_DASHJR} ${PETER_TODD} ${PIETER_WUILLE} ${SJORS_PROVOOST}" # Build stage FROM --platform=$BUILDPLATFORM debian:stable-slim as builder LABEL maintainer="Luke Childs " ARG TARGETARCH ARG ARCH ARG VERSION ARG KEYS WORKDIR /build RUN echo "Installing build deps" RUN apt-get update RUN apt-get install -y wget pgp RUN echo "Deriving tarball name from \$TARGETARCH" RUN [ "${TARGETARCH}" = "amd64" ] && echo "bitcoin-${VERSION}-x86_64-linux-gnu.tar.gz" > /tarball-name || true RUN [ "${TARGETARCH}" = "arm64" ] && echo "bitcoin-${VERSION}-aarch64-linux-gnu.tar.gz" > /tarball-name || true RUN [ "${TARGETARCH}" = "arm" ] && echo "bitcoin-${VERSION}-arm-linux-gnueabihf.tar.gz" > /tarball-name || true RUN echo "Tarball name: $(cat /tarball-name)" RUN echo "Downloading release assets" RUN wget https://bitcoincore.org/bin/bitcoin-core-${VERSION}/$(cat /tarball-name) RUN wget https://bitcoincore.org/bin/bitcoin-core-${VERSION}/SHA256SUMS.asc # This file only exists after v22 so allow it to fail RUN wget https://bitcoincore.org/bin/bitcoin-core-${VERSION}/SHA256SUMS || true RUN echo "Downloaded release assets:" && ls RUN echo "Verifying PGP signatures" RUN gpg --keyserver keyserver.ubuntu.com --recv-keys $KEYS RUN gpg --verify SHA256SUMS.asc 2>&1 >/dev/null | grep "^gpg: Good signature from" || { echo "No valid signature"; exit 1; } RUN echo "PGP signature verification passed" RUN echo "Verifying checksums" RUN [ -f SHA256SUMS ] && cp SHA256SUMS /sha256sums || cp SHA256SUMS.asc /sha256sums RUN grep $(cat /tarball-name) /sha256sums | sha256sum -c RUN echo "Chucksums verified ok" RUN echo "Extracting release assets" RUN tar -zxvf $(cat /tarball-name) --strip-components=1 # Final image FROM debian:stable-slim COPY --from=builder /build/bin/bitcoind /bin COPY --from=builder /build/bin/bitcoin-cli /bin ENV HOME /data VOLUME /data/.bitcoin EXPOSE 8332 8333 18332 18333 18443 18444 ENTRYPOINT ["bitcoind"]