Skip to content

Commit 7d5806c

Browse files
authored
Merge pull request #59 from fanquake/28_3_rc2
2 parents 51e62ee + 27214c0 commit 7d5806c

20 files changed

+1679
-11
lines changed

.github/workflows/build.yml

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,7 @@ on:
55
pull_request:
66
paths:
77
- '27.2/**'
8-
- '28.2/**'
9-
- '28.3rc1/**'
8+
- '28.3/**'
109
- '29.2/**'
1110
- '30.0/**'
1211

@@ -16,8 +15,8 @@ jobs:
1615
strategy:
1716
matrix:
1817
version:
19-
- '29.2/alpine'
20-
- '29.2'
18+
- '28.3/alpine'
19+
- '28.3'
2120
fail-fast: true
2221
steps:
2322
- name: Checkout

28.3/Dockerfile

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
FROM debian:bookworm-slim as builder
2+
3+
LABEL maintainer.0="Will Clark (@willcl-ark)"
4+
5+
RUN apt-get update -y \
6+
&& apt-get install -y ca-certificates curl git gnupg gosu python3 wget --no-install-recommends \
7+
&& apt-get clean \
8+
&& rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
9+
10+
ARG TARGETPLATFORM
11+
ENV BITCOIN_VERSION=28.3
12+
ENV SIGS_REPO_URL="https://github.com/bitcoin-core/guix.sigs.git"
13+
ENV SIGS_CLONE_DIR="guix.sigs"
14+
ENV TMPDIR="/tmp/bitcoin_verify_binaries"
15+
16+
COPY verify-${BITCOIN_VERSION}.py .
17+
18+
RUN set -ex \
19+
&& if echo $BITCOIN_VERSION | grep -q "rc" ; then \
20+
VERIFY_VERSION=$(echo $BITCOIN_VERSION | sed 's/\(.*\)rc\([0-9]*\)/\1-rc\2/'); \
21+
else \
22+
VERIFY_VERSION=$BITCOIN_VERSION; \
23+
fi \
24+
&& echo "$VERIFY_VERSION" \
25+
&& if [ "${TARGETPLATFORM}" = "linux/amd64" ]; then export TARGETPLATFORM=x86_64-linux-gnu; fi \
26+
&& if [ "${TARGETPLATFORM}" = "linux/arm64" ]; then export TARGETPLATFORM=aarch64-linux-gnu; fi \
27+
&& if [ "${TARGETPLATFORM}" = "linux/arm/v7" ]; then export TARGETPLATFORM=arm-linux-gnueabihf; fi \
28+
&& git clone ${SIGS_REPO_URL} ${SIGS_CLONE_DIR} \
29+
&& gpg --import "${SIGS_CLONE_DIR}"/builder-keys/* \
30+
&& ./verify-${BITCOIN_VERSION}.py \
31+
--min-good-sigs 6 pub "${VERIFY_VERSION}-linux" \
32+
&& tar -xzf "${TMPDIR}.${VERIFY_VERSION}-linux/bitcoin-${BITCOIN_VERSION}-${TARGETPLATFORM}.tar.gz" -C /opt \
33+
&& rm -rf ${SIGS_CLONE_DIR} \
34+
&& rm -rf ${TMPDIR} \
35+
&& rm -rf /opt/bitcoin-${BITCOIN_VERSION}/bin/bitcoin-qt
36+
37+
# Second stage
38+
FROM debian:bookworm-slim
39+
40+
ARG UID=101
41+
ARG GID=101
42+
43+
ENV BITCOIN_DATA=/home/bitcoin/.bitcoin
44+
ENV BITCOIN_VERSION=28.3
45+
ENV PATH=/opt/bitcoin-${BITCOIN_VERSION}/bin:$PATH
46+
47+
RUN groupadd --gid ${GID} bitcoin \
48+
&& if echo "$BITCOIN_VERSION" | grep -q "rc"; then \
49+
PADDED_VERSION=$(echo $BITCOIN_VERSION | sed 's/\([0-9]\+\)\.\([0-9]\+\)rc/\1.\2.0rc/'); \
50+
else \
51+
PADDED_VERSION=$BITCOIN_VERSION; \
52+
fi \
53+
&& echo "Padded version: $PADDED_VERSION" \
54+
&& useradd --create-home --no-log-init -u ${UID} -g ${GID} bitcoin \
55+
&& apt-get update -y \
56+
&& apt-get install -y gosu --no-install-recommends \
57+
&& apt-get clean \
58+
&& rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
59+
60+
COPY --from=builder /opt/bitcoin-${BITCOIN_VERSION} /opt/bitcoin-${BITCOIN_VERSION}
61+
62+
COPY docker-entrypoint.sh /entrypoint.sh
63+
64+
VOLUME ["/home/bitcoin/.bitcoin"]
65+
EXPOSE 8332 8333 18332 18333 18443 18444 38333 38332
66+
67+
ENTRYPOINT ["/entrypoint.sh"]
68+
RUN bitcoind -version | grep "Bitcoin Core version v${PADDED_VERSION}"
69+
CMD ["bitcoind"]

28.3/alpine/Dockerfile

Lines changed: 109 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,109 @@
1+
# Build stage for Bitcoin Core
2+
FROM alpine as bitcoin-core
3+
4+
RUN apk --no-cache add \
5+
autoconf \
6+
automake \
7+
boost-dev \
8+
build-base \
9+
chrpath \
10+
file \
11+
gnupg \
12+
git \
13+
libevent-dev \
14+
libtool \
15+
linux-headers \
16+
sqlite-dev \
17+
zeromq-dev
18+
19+
ENV BITCOIN_VERSION=28.3
20+
ENV BITCOIN_PREFIX=/opt/bitcoin-${BITCOIN_VERSION}
21+
ENV BITCOIN_SOURCE_DIR=/bitcoin/src
22+
ENV SIGS_REPO_URL="https://github.com/bitcoin-core/guix.sigs.git"
23+
ENV SIGS_CLONE_DIR="guix.sigs"
24+
ENV VERIFY_SCRIPT_URL="https://raw.githubusercontent.com/bitcoin/bitcoin/v${BITCOIN_VERSION}/contrib/verify-binaries/verify.py"
25+
26+
WORKDIR /bitcoin
27+
COPY verify-${BITCOIN_VERSION}.py .
28+
29+
RUN set -ex \
30+
&& if echo $BITCOIN_VERSION | grep -q "rc" ; then \
31+
VERIFY_VERSION=$(echo $BITCOIN_VERSION | sed 's/\(.*\)rc\([0-9]*\)/\1-rc\2/'); \
32+
ADDRESS="https://bitcoincore.org/bin/bitcoin-core-${BITCOIN_VERSION%%rc*}/test.rc${BITCOIN_VERSION##*rc}"; \
33+
else \
34+
VERIFY_VERSION=$BITCOIN_VERSION; \
35+
ADDRESS="https://bitcoincore.org/bin/bitcoin-core-${VERIFY_VERSION}"; \
36+
fi \
37+
&& echo "$VERIFY_VERSION" \
38+
&& wget ${ADDRESS}/bitcoin-${BITCOIN_VERSION}.tar.gz \
39+
&& wget ${ADDRESS}/SHA256SUMS \
40+
&& wget ${ADDRESS}/SHA256SUMS.asc \
41+
&& git clone ${SIGS_REPO_URL} ${SIGS_CLONE_DIR} \
42+
&& gpg --import "${SIGS_CLONE_DIR}"/builder-keys/* \
43+
&& ./verify-${BITCOIN_VERSION}.py bin SHA256SUMS \
44+
"bitcoin-${BITCOIN_VERSION}.tar.gz" \
45+
&& mkdir -p ${BITCOIN_SOURCE_DIR} \
46+
&& tar -xzf "bitcoin-${BITCOIN_VERSION}.tar.gz" -C ${BITCOIN_SOURCE_DIR} \
47+
&& rm -rf ${SIGS_CLONE_DIR}
48+
49+
WORKDIR "${BITCOIN_SOURCE_DIR}/bitcoin-${BITCOIN_VERSION}"
50+
51+
RUN ./autogen.sh
52+
RUN ./configure \
53+
--prefix=${BITCOIN_PREFIX} \
54+
--mandir=/usr/share/man \
55+
--disable-tests \
56+
--disable-bench \
57+
--disable-fuzz-binary \
58+
--disable-ccache \
59+
--with-gui=no \
60+
--with-utils \
61+
--without-libs \
62+
--with-sqlite=yes \
63+
--with-daemon
64+
RUN make -j`nproc` -C src bitcoind bitcoin-cli bitcoin-tx
65+
RUN make -j`nproc` install
66+
RUN strip ${BITCOIN_PREFIX}/bin/bitcoin-cli
67+
RUN strip ${BITCOIN_PREFIX}/bin/bitcoin-tx
68+
RUN strip ${BITCOIN_PREFIX}/bin/bitcoind
69+
70+
# Build stage for compiled artifacts
71+
FROM alpine
72+
73+
ARG UID=100
74+
ARG GID=101
75+
76+
LABEL maintainer.0="Will Clark (@willcl-ark)"
77+
78+
RUN addgroup bitcoin --gid ${GID} --system
79+
RUN adduser --uid ${UID} --system bitcoin --ingroup bitcoin
80+
RUN apk --no-cache add \
81+
libevent \
82+
libzmq \
83+
shadow \
84+
sqlite-libs \
85+
su-exec
86+
87+
ENV BITCOIN_DATA=/home/bitcoin/.bitcoin
88+
ENV BITCOIN_VERSION=28.3
89+
ENV BITCOIN_PREFIX=/opt/bitcoin-${BITCOIN_VERSION}
90+
ENV PATH=${BITCOIN_PREFIX}/bin:$PATH
91+
92+
COPY --from=bitcoin-core /opt /opt
93+
COPY docker-entrypoint.sh /entrypoint.sh
94+
95+
RUN if echo "$BITCOIN_VERSION" | grep -q "rc"; then \
96+
PADDED_VERSION=$(echo $BITCOIN_VERSION | sed 's/\([0-9]\+\)\.\([0-9]\+\)rc/\1.\2.0rc/'); \
97+
else \
98+
PADDED_VERSION=$BITCOIN_VERSION; \
99+
fi
100+
101+
VOLUME ["/home/bitcoin/.bitcoin"]
102+
103+
EXPOSE 8332 8333 18332 18333 18444
104+
105+
ENTRYPOINT ["/entrypoint.sh"]
106+
107+
RUN bitcoind -version | grep "Bitcoin Core version v${PADDED_VERSION}"
108+
109+
CMD ["bitcoind"]
File renamed without changes.

README.md

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -32,17 +32,12 @@
3232
- `29.2`, `29`, `latest` ([29.2/Dockerfile](https://github.com/willcl-ark/bitcoin-core-docker/blob/master/29.2/Dockerfile)) [**multi-platform**]
3333
- `29.2-alpine`, `29-alpine` ([29.2/alpine/Dockerfile](https://github.com/willcl-ark/bitcoin-core-docker/blob/master/29.2/alpine/Dockerfile))
3434

35-
- `28.2`, `28` ([28.2/Dockerfile](https://github.com/willcl-ark/bitcoin-core-docker/blob/master/28.2/Dockerfile)) [**multi-platform**]
36-
- `28.2-alpine`, `28-alpine`, `alpine` ([28.2/alpine/Dockerfile](https://github.com/willcl-ark/bitcoin-core-docker/blob/master/28.2/alpine/Dockerfile))
35+
- `28.3` ([28.3/Dockerfile](https://github.com/willcl-ark/bitcoin-core-docker/blob/master/28.3/Dockerfile)) [**multi-platform**]
36+
- `28.3-alpine` ([28.3/alpine/Dockerfile](https://github.com/willcl-ark/bitcoin-core-docker/blob/master/28.3/alpine/Dockerfile))
3737

3838
- `27.2`, `27` ([27.2/Dockerfile](https://github.com/willcl-ark/bitcoin-core-docker/blob/master/27.2/Dockerfile)) [**multi-platform**]
3939
- `27.2-alpine`, `27-alpine` ([27.2/alpine/Dockerfile](https://github.com/willcl-ark/bitcoin-core-docker/blob/master/27.2/alpine/Dockerfile))
4040

41-
## Release Candidates
42-
43-
- `28.3rc1` ([28.3rc1/Dockerfile](https://github.com/willcl-ark/bitcoin-core-docker/blob/master/28.3rc1/Dockerfile)) [**multi-platform**]
44-
- `28.3rc1-alpine` ([28.3rc1/alpine/Dockerfile](https://github.com/willcl-ark/bitcoin-core-docker/blob/master/28.3rc1/alpine/Dockerfile))
45-
4641
### Picking the right tag
4742

4843
> [!IMPORTANT]

0 commit comments

Comments
 (0)