Skip to content

Commit 37c9f95

Browse files
committed
Ported to use Debian buster slim.
1 parent e6d102a commit 37c9f95

File tree

3 files changed

+63
-44
lines changed

3 files changed

+63
-44
lines changed

.circleci/config.yml

Lines changed: 27 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,37 @@
11
version: 2
22

33
jobs:
4-
build:
5-
machine:
6-
image: "ubuntu-1604:201903-01"
4+
5+
build:
6+
machine:
7+
image: ubuntu-1604:201903-01
78
steps:
8-
- checkout
9-
- run: echo 'export DOCKER_TAG=${DOCKER_USERNAME}/bitcoind:${CIRCLE_BRANCH}${CIRCLE_TAG}' >> $BASH_ENV
9+
# install actual docker version
10+
- run: sudo apt-get remove docker docker-engine docker.io containerd runc
11+
- run: sudo apt-get update
12+
- run: sudo apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common
13+
- run: curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
14+
- run: sudo apt-key fingerprint 0EBFCD88
15+
- run: sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
16+
- run: sudo apt-get update
17+
- run: sudo apt-get install docker-ce docker-ce-cli containerd.io
1018

11-
- run: docker run --rm --privileged docker/binfmt:a7996909642ee92942dcd6cff44b9b95f08dad64
12-
- run: docker run --name=buildcontainer --privileged -d legacycode/bitcoind:builder
13-
- run: docker exec buildcontainer docker buildx create --name worker
14-
- run: docker exec buildcontainer docker buildx use worker
15-
- run: docker exec buildcontainer docker buildx inspect --bootstrap
16-
- run: docker exec buildcontainer docker buildx ls
17-
- run: docker exec buildcontainer docker login -u ${DOCKER_USERNAME} -p ${DOCKER_PASSWORD}
18-
- run: docker cp Dockerfile buildcontainer:/
19+
# enable experimental docker features for buildx
20+
- run: echo 'export DOCKER_CLI_EXPERIMENTAL=enabled' >> $BASH_ENV
21+
- run: docker info
1922

23+
# register qemu and create multi-architecture build instance
24+
- run: docker run --rm --privileged docker/binfmt:a7996909642ee92942dcd6cff44b9b95f08dad64
25+
- run: docker buildx create --name mybuilder
26+
- run: docker buildx use mybuilder
27+
- run: docker buildx inspect --bootstrap
28+
29+
# build and push bintcoind
30+
- checkout
31+
- run: echo 'export DOCKER_TAG=${DOCKER_USERNAME}/bitcoind:${CIRCLE_BRANCH}${CIRCLE_TAG}' >> $BASH_ENV
32+
- run: docker login -u ${DOCKER_USERNAME} -p ${DOCKER_PASSWORD}
2033
- run: |
21-
docker exec buildcontainer docker buildx build \
34+
docker buildx build \
2235
--platform linux/amd64,linux/arm64,linux/386,linux/arm/v7 \
2336
--build-arg BUILD_DATE=`date -u +"%Y-%m-%dT%H:%M:%SZ"` \
2437
--build-arg VCS_REF=$CIRCLE_SHA1 . -t ${DOCKER_TAG} --push

Dockerfile

Lines changed: 32 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,32 +1,48 @@
11
ARG BITCOIND_VERSION=0.19.0.1
22

3-
FROM alpine:3.11 AS builder
3+
FROM debian:buster-slim AS builder
44

55
ARG BITCOIND_VERSION
66

7+
# Install dependencies and build the binaries.
8+
RUN apt-get update --yes \
9+
&& apt-get install --no-install-recommends --yes \
10+
ca-certificates=20190110 \
11+
dirmngr=2.2.12-1+deb10u1 \
12+
gpg=2.2.12-1+deb10u1 \
13+
gpg-agent=2.2.12-1+deb10u1 \
14+
wget=1.20.1-1.1 \
15+
&& apt-get clean \
16+
&& rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
17+
718
WORKDIR /bitcoin
819

920
RUN set -eux; \
10-
apkArch="$(apk --print-arch)"; \
11-
\
12-
case "$apkArch" in \
13-
x86) \
21+
arch="$(dpkg --print-architecture)"; \
22+
case "$arch" in \
23+
i386) \
1424
url=https://bitcoincore.org/bin/bitcoin-core-$BITCOIND_VERSION/bitcoin-$BITCOIND_VERSION-i686-pc-linux-gnu.tar.gz ;; \
15-
x86_64) \
25+
amd64) \
1626
url=https://bitcoin.org/bin/bitcoin-core-$BITCOIND_VERSION/bitcoin-$BITCOIND_VERSION-x86_64-linux-gnu.tar.gz ;; \
17-
armv7) \
27+
armhf) \
1828
url=https://bitcoincore.org/bin/bitcoin-core-$BITCOIND_VERSION/bitcoin-$BITCOIND_VERSION-arm-linux-gnueabihf.tar.gz ;; \
19-
aarch64) \
29+
arm64) \
2030
url=https://bitcoincore.org/bin/bitcoin-core-$BITCOIND_VERSION/bitcoin-$BITCOIND_VERSION-aarch64-linux-gnu.tar.gz ;; \
2131
*) \
22-
echo >&2 "error: unsupported architecture ($apkArch)"; exit 1 ;;\
32+
echo >&2 "error: unsupported architecture ($arch)"; exit 1 ;;\
2333
esac; \
2434
\
25-
wget -q -O- $url |tar xz -C /bitcoin --strip-components=1
35+
wget --quiet $url \
36+
&& wget --quiet https://bitcoin.org/bin/bitcoin-core-$BITCOIND_VERSION/SHA256SUMS.asc \
37+
&& gpg --keyserver hkp://keyserver.ubuntu.com --recv-keys 01EA5486DE18A882D4C2684590C8019E36C2E964 \
38+
&& gpg --verify SHA256SUMS.asc \
39+
&& grep "${url##*/}" SHA256SUMS.asc | sha256sum -c - \
40+
&& mkdir /bitcoind \
41+
&& tar -xzf ./*.tar.gz -C /bitcoin --strip-components=1
2642

2743

2844
# Start a new, final image.
29-
FROM alpine:3.11 AS final
45+
FROM debian:buster-slim AS final
3046

3147
ARG BUILD_DATE
3248
ARG VCS_REF
@@ -35,26 +51,19 @@ ARG BITCOIND_VERSION
3551
LABEL org.label-schema.schema-version="1.0" \
3652
org.label-schema.build-date=$BUILD_DATE \
3753
org.label-schema.name="legacycode/bitcoind" \
38-
org.label-schema.description="A Docker image based on Alpine Linux ready to run a bitcoin full node!" \
54+
org.label-schema.description="A Docker image based on Debian Linux ready to run a bitcoin full node!" \
3955
org.label-schema.usage="https://hub.docker.com/r/legacycode/bitcoind" \
4056
org.label-schema.url="https://hub.docker.com/r/legacycode/bitcoind" \
4157
org.label-schema.vcs-url="https://github.com/legacycode/bitcoind-docker" \
4258
org.label-schema.vcs-ref=$VCS_REF \
4359
org.label-schema.version=$BITCOIND_VERSION \
4460
maintainer="info@legacycode.org"
4561

46-
# Install dependencies and build the binaries.
47-
RUN apk add --no-cache --update \
48-
boost \
49-
libevent \
50-
openssl \
51-
libzmq
52-
5362
# Add user and group for bitcoin process.
54-
RUN addgroup -S bitcoin \
55-
&& adduser -S bitcoin -G bitcoin \
56-
&& mkdir /home/bitcoin/.bitcoin \
57-
&& chown bitcoin:bitcoin /home/bitcoin/.bitcoin
63+
RUN useradd -r bitcoin \
64+
&& mkdir -p /home/bitcoin/.bitcoin \
65+
&& chmod 700 /home/bitcoin/.bitcoin \
66+
&& chown -R bitcoin /home/bitcoin/.bitcoin
5867

5968
# Change user.
6069
USER bitcoin

README.md

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -13,16 +13,13 @@ This documentation focus on running Docker container with _docker-compose.yml_ f
1313

1414
This bitcoind images supports following tags for e.g. Linux, Raspberry, Pine64 etc.:
1515

16-
- [`latest`](https://github.com/legacycode/bitcoind-docker/blob/latest/Dockerfile) [`v0.19.0.1`](https://github.com/legacycode/bitcoind-docker/blob/v0.19.0.1/Dockerfile) [`v0.19.0`](https://github.com/legacycode/bitcoind-docker/blob/v0.19.0/Dockerfile) [`v0.18.1`](https://github.com/legacycode/bitcoind-docker/blob/v0.18.1/Dockerfile) - stable bitcoind builds
16+
- [`latest`](https://github.com/legacycode/bitcoind-docker/blob/latest/Dockerfile) [`v0.19.0.1`](https://github.com/legacycode/bitcoind-docker/blob/v0.19.0.1/Dockerfile) - stable bitcoind builds
1717

1818
This images supports following architectures [(more info)](8):
1919

2020
- `amd64` - for most desktop processors
21-
2221
- `arm7v` - for 32-Bit ARM images like Raspbian (Raspberry 1, 2, 3 and 4)
23-
24-
- `arm64` - for 64-Bit ARM images like armbian
25-
22+
- `arm64` - for 64-Bit ARM images like armbian (Pine 64, etc.)
2623
- `386` - for legacy desktop processors
2724

2825
## Starting your bitcoind node
@@ -83,7 +80,7 @@ This [bitcoind Dockerfile][1] is provided under the [MIT License][4].
8380

8481
For license information about [bitcoind][5] visit the [bitcoind GitHub source][6].
8582

86-
The Docker images are based on the [alpine Docker image][7]. Refer to the official [alpine Docker image][7] page for license information.
83+
The Docker images are based on the [Debian Docker image][7]. Refer to the official [Debian Docker image][7] page for license information.
8784

8885
[1]: https://github.com/legacycode/bitcoind-docker
8986

@@ -97,4 +94,4 @@ The Docker images are based on the [alpine Docker image][7]. Refer to the offici
9794

9895
[6]: https://github.com/bitcoin/bitcoin/blob/master/COPYING
9996

100-
[7]: https://hub.docker.com/_/alpine
97+
[7]: https://hub.docker.com/_/debian

0 commit comments

Comments
 (0)