#Based on Dockerflie from Kyle Manna - https://github.com/kylemanna/docker-bitcoind FROM almalinux/9-minimal AS build RUN microdnf update -y \ && microdnf install -y \ ca-certificates \ gnupg2 \ libatomic \ wget \ tar \ gzip \ && microdnf clean all && rm -fr /tmp/* /var/tmp/* ARG VERSION=26.0 ARG BITCOIN_CORE_SIGNATURE=71A3B16735405025D447E8F274810B012346C9A6 ENV GOSU_VERSION 1.17 RUN cd /tmp \ && gpg --keyserver hkp://keyserver.ubuntu.com --recv-keys ${BITCOIN_CORE_SIGNATURE} \ && wget https://bitcoincore.org/bin/bitcoin-core-${VERSION}/SHA256SUMS.asc \ https://bitcoincore.org/bin/bitcoin-core-${VERSION}/SHA256SUMS \ https://bitcoincore.org/bin/bitcoin-core-${VERSION}/bitcoin-${VERSION}-x86_64-linux-gnu.tar.gz \ && gpg --verify --status-fd 1 --verify SHA256SUMS.asc SHA256SUMS 2>/dev/null | grep "^\[GNUPG:\] VALIDSIG.*${BITCOIN_CORE_SIGNATURE}\$" \ && sha256sum --ignore-missing --check SHA256SUMS \ && tar -xzvf bitcoin-${VERSION}-x86_64-linux-gnu.tar.gz -C /opt \ && ln -sv bitcoin-${VERSION} /opt/bitcoin \ && /opt/bitcoin/bin/test_bitcoin --show_progress \ && rm -v /opt/bitcoin/bin/test_bitcoin /opt/bitcoin/bin/bitcoin-qt RUN wget -O /usr/local/bin/gosu "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION/gosu-amd64"; \ wget -O /usr/local/bin/gosu.asc "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION/gosu-amd64.asc"; \ \ # verify the signature export GNUPGHOME="$(mktemp -d)"; \ gpg --batch --keyserver hkps://keys.openpgp.org --recv-keys B42F6819007F00F88E364FD4036A9C25BF357DD4; \ gpg --batch --verify /usr/local/bin/gosu.asc /usr/local/bin/gosu; \ gpgconf --kill all; \ rm -rf "$GNUPGHOME" /usr/local/bin/gosu.asc; FROM almalinux/9-minimal LABEL maintainer="b0xxer@b0xxy.net" ENTRYPOINT ["entrypoint.sh"] ENV HOME /bitcoin EXPOSE 8332 8333 VOLUME ["/bitcoin/.bitcoin"] WORKDIR /bitcoin COPY --from=build /opt/ /opt/ COPY --from=build /usr/local/bin/gosu /usr/local/bin/ RUN microdnf update -y \ && microdnf install -y libatomic shadow-utils \ && microdnf clean all && rm -rf /tmp/* /var/tmp/* \ && ln -sv /opt/bitcoin/bin/* /usr/local/bin ARG GROUP_ID=1000 ARG USER_ID=1000 RUN groupadd -g ${GROUP_ID} bitcoin \ && useradd -u ${USER_ID} -g bitcoin -d /bitcoin bitcoin COPY ./bin ./entrypoint.sh /usr/local/bin/ RUN chmod +x /usr/local/bin/entrypoint.sh && chmod +x /usr/local/bin/gosu \ && chmod +x /usr/local/bin/btc_oneshot && chmod +x /usr/local/bin/btc_init CMD ["btc_oneshot"]