├── 22 ├── docker-entrypoint.sh ├── alpine │ ├── docker-entrypoint.sh │ └── Dockerfile └── Dockerfile ├── 24 ├── docker-entrypoint.sh ├── alpine │ ├── docker-entrypoint.sh │ └── Dockerfile └── Dockerfile ├── 25 ├── docker-entrypoint.sh ├── alpine │ ├── docker-entrypoint.sh │ └── Dockerfile └── Dockerfile ├── 26 ├── docker-entrypoint.sh ├── alpine │ ├── docker-entrypoint.sh │ └── Dockerfile └── Dockerfile ├── 27 ├── docker-entrypoint.sh ├── alpine │ ├── docker-entrypoint.sh │ └── Dockerfile └── Dockerfile ├── 28 ├── docker-entrypoint.sh ├── alpine │ ├── docker-entrypoint.sh │ └── Dockerfile └── Dockerfile ├── 29 ├── docker-entrypoint.sh ├── alpine │ ├── docker-entrypoint.sh │ └── Dockerfile └── Dockerfile ├── 30 ├── docker-entrypoint.sh ├── alpine │ ├── docker-entrypoint.sh │ └── Dockerfile └── Dockerfile ├── 0.11 ├── docker-entrypoint.sh ├── alpine │ ├── docker-entrypoint.sh │ ├── patches │ │ └── warnings.patch │ └── Dockerfile └── Dockerfile ├── 0.12 ├── docker-entrypoint.sh ├── alpine │ ├── docker-entrypoint.sh │ ├── patches │ │ ├── boost.patch │ │ └── warnings.patch │ └── Dockerfile └── Dockerfile ├── 0.13 ├── docker-entrypoint.sh ├── alpine │ ├── docker-entrypoint.sh │ ├── patches │ │ ├── warnings.patch │ │ └── boost.patch │ └── Dockerfile └── Dockerfile ├── 0.16 ├── docker-entrypoint.sh ├── alpine │ ├── docker-entrypoint.sh │ └── Dockerfile └── Dockerfile ├── 0.17 ├── docker-entrypoint.sh ├── alpine │ ├── docker-entrypoint.sh │ └── Dockerfile └── Dockerfile ├── 0.18 ├── docker-entrypoint.sh ├── alpine │ ├── docker-entrypoint.sh │ └── Dockerfile └── Dockerfile ├── 0.19 ├── docker-entrypoint.sh ├── alpine │ ├── docker-entrypoint.sh │ └── Dockerfile └── Dockerfile ├── 0.20 ├── docker-entrypoint.sh ├── alpine │ ├── docker-entrypoint.sh │ └── Dockerfile └── Dockerfile ├── 0.21 ├── docker-entrypoint.sh ├── alpine │ ├── docker-entrypoint.sh │ └── Dockerfile └── Dockerfile ├── 29.1 ├── docker-entrypoint.sh ├── alpine │ ├── docker-entrypoint.sh │ └── Dockerfile └── Dockerfile ├── LICENSE ├── .github └── workflows │ └── build.yaml └── README.md /0.11/docker-entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | if [ -n "${UID+x}" ] && [ "${UID}" != "0" ]; then 5 | usermod -u "$UID" bitcoin 6 | fi 7 | 8 | if [ -n "${GID+x}" ] && [ "${GID}" != "0" ]; then 9 | groupmod -g "$GID" bitcoin 10 | fi 11 | 12 | echo "$0: assuming uid:gid for bitcoin:bitcoin of $(id -u bitcoin):$(id -g bitcoin)" 13 | 14 | if [ $(echo "$1" | cut -c1) = "-" ]; then 15 | echo "$0: assuming arguments for bitcoind" 16 | 17 | set -- bitcoind "$@" 18 | fi 19 | 20 | if [ $(echo "$1" | cut -c1) = "-" ] || [ "$1" = "bitcoind" ]; then 21 | mkdir -p "$BITCOIN_DATA" 22 | chmod 700 "$BITCOIN_DATA" 23 | # Fix permissions for home dir. 24 | chown -R bitcoin:bitcoin "$(getent passwd bitcoin | cut -d: -f6)" 25 | # Fix permissions for bitcoin data dir. 26 | chown -R bitcoin:bitcoin "$BITCOIN_DATA" 27 | 28 | echo "$0: setting data directory to $BITCOIN_DATA" 29 | 30 | set -- "$@" -datadir="$BITCOIN_DATA" 31 | fi 32 | 33 | if [ "$1" = "bitcoind" ] || [ "$1" = "bitcoin-cli" ] || [ "$1" = "bitcoin-tx" ]; then 34 | echo 35 | exec gosu bitcoin "$@" 36 | fi 37 | 38 | echo 39 | exec "$@" 40 | -------------------------------------------------------------------------------- /0.12/docker-entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | if [ -n "${UID+x}" ] && [ "${UID}" != "0" ]; then 5 | usermod -u "$UID" bitcoin 6 | fi 7 | 8 | if [ -n "${GID+x}" ] && [ "${GID}" != "0" ]; then 9 | groupmod -g "$GID" bitcoin 10 | fi 11 | 12 | echo "$0: assuming uid:gid for bitcoin:bitcoin of $(id -u bitcoin):$(id -g bitcoin)" 13 | 14 | if [ $(echo "$1" | cut -c1) = "-" ]; then 15 | echo "$0: assuming arguments for bitcoind" 16 | 17 | set -- bitcoind "$@" 18 | fi 19 | 20 | if [ $(echo "$1" | cut -c1) = "-" ] || [ "$1" = "bitcoind" ]; then 21 | mkdir -p "$BITCOIN_DATA" 22 | chmod 700 "$BITCOIN_DATA" 23 | # Fix permissions for home dir. 24 | chown -R bitcoin:bitcoin "$(getent passwd bitcoin | cut -d: -f6)" 25 | # Fix permissions for bitcoin data dir. 26 | chown -R bitcoin:bitcoin "$BITCOIN_DATA" 27 | 28 | echo "$0: setting data directory to $BITCOIN_DATA" 29 | 30 | set -- "$@" -datadir="$BITCOIN_DATA" 31 | fi 32 | 33 | if [ "$1" = "bitcoind" ] || [ "$1" = "bitcoin-cli" ] || [ "$1" = "bitcoin-tx" ]; then 34 | echo 35 | exec gosu bitcoin "$@" 36 | fi 37 | 38 | echo 39 | exec "$@" 40 | -------------------------------------------------------------------------------- /0.13/docker-entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | if [ -n "${UID+x}" ] && [ "${UID}" != "0" ]; then 5 | usermod -u "$UID" bitcoin 6 | fi 7 | 8 | if [ -n "${GID+x}" ] && [ "${GID}" != "0" ]; then 9 | groupmod -g "$GID" bitcoin 10 | fi 11 | 12 | echo "$0: assuming uid:gid for bitcoin:bitcoin of $(id -u bitcoin):$(id -g bitcoin)" 13 | 14 | if [ $(echo "$1" | cut -c1) = "-" ]; then 15 | echo "$0: assuming arguments for bitcoind" 16 | 17 | set -- bitcoind "$@" 18 | fi 19 | 20 | if [ $(echo "$1" | cut -c1) = "-" ] || [ "$1" = "bitcoind" ]; then 21 | mkdir -p "$BITCOIN_DATA" 22 | chmod 700 "$BITCOIN_DATA" 23 | # Fix permissions for home dir. 24 | chown -R bitcoin:bitcoin "$(getent passwd bitcoin | cut -d: -f6)" 25 | # Fix permissions for bitcoin data dir. 26 | chown -R bitcoin:bitcoin "$BITCOIN_DATA" 27 | 28 | echo "$0: setting data directory to $BITCOIN_DATA" 29 | 30 | set -- "$@" -datadir="$BITCOIN_DATA" 31 | fi 32 | 33 | if [ "$1" = "bitcoind" ] || [ "$1" = "bitcoin-cli" ] || [ "$1" = "bitcoin-tx" ]; then 34 | echo 35 | exec gosu bitcoin "$@" 36 | fi 37 | 38 | echo 39 | exec "$@" 40 | -------------------------------------------------------------------------------- /0.16/docker-entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | if [ -n "${UID+x}" ] && [ "${UID}" != "0" ]; then 5 | usermod -u "$UID" bitcoin 6 | fi 7 | 8 | if [ -n "${GID+x}" ] && [ "${GID}" != "0" ]; then 9 | groupmod -g "$GID" bitcoin 10 | fi 11 | 12 | echo "$0: assuming uid:gid for bitcoin:bitcoin of $(id -u bitcoin):$(id -g bitcoin)" 13 | 14 | if [ $(echo "$1" | cut -c1) = "-" ]; then 15 | echo "$0: assuming arguments for bitcoind" 16 | 17 | set -- bitcoind "$@" 18 | fi 19 | 20 | if [ $(echo "$1" | cut -c1) = "-" ] || [ "$1" = "bitcoind" ]; then 21 | mkdir -p "$BITCOIN_DATA" 22 | chmod 700 "$BITCOIN_DATA" 23 | # Fix permissions for home dir. 24 | chown -R bitcoin:bitcoin "$(getent passwd bitcoin | cut -d: -f6)" 25 | # Fix permissions for bitcoin data dir. 26 | chown -R bitcoin:bitcoin "$BITCOIN_DATA" 27 | 28 | echo "$0: setting data directory to $BITCOIN_DATA" 29 | 30 | set -- "$@" -datadir="$BITCOIN_DATA" 31 | fi 32 | 33 | if [ "$1" = "bitcoind" ] || [ "$1" = "bitcoin-cli" ] || [ "$1" = "bitcoin-tx" ]; then 34 | echo 35 | exec gosu bitcoin "$@" 36 | fi 37 | 38 | echo 39 | exec "$@" 40 | -------------------------------------------------------------------------------- /0.17/docker-entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | if [ -n "${UID+x}" ] && [ "${UID}" != "0" ]; then 5 | usermod -u "$UID" bitcoin 6 | fi 7 | 8 | if [ -n "${GID+x}" ] && [ "${GID}" != "0" ]; then 9 | groupmod -g "$GID" bitcoin 10 | fi 11 | 12 | echo "$0: assuming uid:gid for bitcoin:bitcoin of $(id -u bitcoin):$(id -g bitcoin)" 13 | 14 | if [ $(echo "$1" | cut -c1) = "-" ]; then 15 | echo "$0: assuming arguments for bitcoind" 16 | 17 | set -- bitcoind "$@" 18 | fi 19 | 20 | if [ $(echo "$1" | cut -c1) = "-" ] || [ "$1" = "bitcoind" ]; then 21 | mkdir -p "$BITCOIN_DATA" 22 | chmod 700 "$BITCOIN_DATA" 23 | # Fix permissions for home dir. 24 | chown -R bitcoin:bitcoin "$(getent passwd bitcoin | cut -d: -f6)" 25 | # Fix permissions for bitcoin data dir. 26 | chown -R bitcoin:bitcoin "$BITCOIN_DATA" 27 | 28 | echo "$0: setting data directory to $BITCOIN_DATA" 29 | 30 | set -- "$@" -datadir="$BITCOIN_DATA" 31 | fi 32 | 33 | if [ "$1" = "bitcoind" ] || [ "$1" = "bitcoin-cli" ] || [ "$1" = "bitcoin-tx" ]; then 34 | echo 35 | exec gosu bitcoin "$@" 36 | fi 37 | 38 | echo 39 | exec "$@" 40 | -------------------------------------------------------------------------------- /0.18/docker-entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | if [ -n "${UID+x}" ] && [ "${UID}" != "0" ]; then 5 | usermod -u "$UID" bitcoin 6 | fi 7 | 8 | if [ -n "${GID+x}" ] && [ "${GID}" != "0" ]; then 9 | groupmod -g "$GID" bitcoin 10 | fi 11 | 12 | echo "$0: assuming uid:gid for bitcoin:bitcoin of $(id -u bitcoin):$(id -g bitcoin)" 13 | 14 | if [ $(echo "$1" | cut -c1) = "-" ]; then 15 | echo "$0: assuming arguments for bitcoind" 16 | 17 | set -- bitcoind "$@" 18 | fi 19 | 20 | if [ $(echo "$1" | cut -c1) = "-" ] || [ "$1" = "bitcoind" ]; then 21 | mkdir -p "$BITCOIN_DATA" 22 | chmod 700 "$BITCOIN_DATA" 23 | # Fix permissions for home dir. 24 | chown -R bitcoin:bitcoin "$(getent passwd bitcoin | cut -d: -f6)" 25 | # Fix permissions for bitcoin data dir. 26 | chown -R bitcoin:bitcoin "$BITCOIN_DATA" 27 | 28 | echo "$0: setting data directory to $BITCOIN_DATA" 29 | 30 | set -- "$@" -datadir="$BITCOIN_DATA" 31 | fi 32 | 33 | if [ "$1" = "bitcoind" ] || [ "$1" = "bitcoin-cli" ] || [ "$1" = "bitcoin-tx" ]; then 34 | echo 35 | exec gosu bitcoin "$@" 36 | fi 37 | 38 | echo 39 | exec "$@" 40 | -------------------------------------------------------------------------------- /0.19/docker-entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | if [ -n "${UID+x}" ] && [ "${UID}" != "0" ]; then 5 | usermod -u "$UID" bitcoin 6 | fi 7 | 8 | if [ -n "${GID+x}" ] && [ "${GID}" != "0" ]; then 9 | groupmod -g "$GID" bitcoin 10 | fi 11 | 12 | echo "$0: assuming uid:gid for bitcoin:bitcoin of $(id -u bitcoin):$(id -g bitcoin)" 13 | 14 | if [ $(echo "$1" | cut -c1) = "-" ]; then 15 | echo "$0: assuming arguments for bitcoind" 16 | 17 | set -- bitcoind "$@" 18 | fi 19 | 20 | if [ $(echo "$1" | cut -c1) = "-" ] || [ "$1" = "bitcoind" ]; then 21 | mkdir -p "$BITCOIN_DATA" 22 | chmod 700 "$BITCOIN_DATA" 23 | # Fix permissions for home dir. 24 | chown -R bitcoin:bitcoin "$(getent passwd bitcoin | cut -d: -f6)" 25 | # Fix permissions for bitcoin data dir. 26 | chown -R bitcoin:bitcoin "$BITCOIN_DATA" 27 | 28 | echo "$0: setting data directory to $BITCOIN_DATA" 29 | 30 | set -- "$@" -datadir="$BITCOIN_DATA" 31 | fi 32 | 33 | if [ "$1" = "bitcoind" ] || [ "$1" = "bitcoin-cli" ] || [ "$1" = "bitcoin-tx" ]; then 34 | echo 35 | exec gosu bitcoin "$@" 36 | fi 37 | 38 | echo 39 | exec "$@" 40 | -------------------------------------------------------------------------------- /0.20/docker-entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | if [ -n "${UID+x}" ] && [ "${UID}" != "0" ]; then 5 | usermod -u "$UID" bitcoin 6 | fi 7 | 8 | if [ -n "${GID+x}" ] && [ "${GID}" != "0" ]; then 9 | groupmod -g "$GID" bitcoin 10 | fi 11 | 12 | echo "$0: assuming uid:gid for bitcoin:bitcoin of $(id -u bitcoin):$(id -g bitcoin)" 13 | 14 | if [ $(echo "$1" | cut -c1) = "-" ]; then 15 | echo "$0: assuming arguments for bitcoind" 16 | 17 | set -- bitcoind "$@" 18 | fi 19 | 20 | if [ $(echo "$1" | cut -c1) = "-" ] || [ "$1" = "bitcoind" ]; then 21 | mkdir -p "$BITCOIN_DATA" 22 | chmod 700 "$BITCOIN_DATA" 23 | # Fix permissions for home dir. 24 | chown -R bitcoin:bitcoin "$(getent passwd bitcoin | cut -d: -f6)" 25 | # Fix permissions for bitcoin data dir. 26 | chown -R bitcoin:bitcoin "$BITCOIN_DATA" 27 | 28 | echo "$0: setting data directory to $BITCOIN_DATA" 29 | 30 | set -- "$@" -datadir="$BITCOIN_DATA" 31 | fi 32 | 33 | if [ "$1" = "bitcoind" ] || [ "$1" = "bitcoin-cli" ] || [ "$1" = "bitcoin-tx" ]; then 34 | echo 35 | exec gosu bitcoin "$@" 36 | fi 37 | 38 | echo 39 | exec "$@" 40 | -------------------------------------------------------------------------------- /0.21/docker-entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | if [ -n "${UID+x}" ] && [ "${UID}" != "0" ]; then 5 | usermod -u "$UID" bitcoin 6 | fi 7 | 8 | if [ -n "${GID+x}" ] && [ "${GID}" != "0" ]; then 9 | groupmod -g "$GID" bitcoin 10 | fi 11 | 12 | echo "$0: assuming uid:gid for bitcoin:bitcoin of $(id -u bitcoin):$(id -g bitcoin)" 13 | 14 | if [ $(echo "$1" | cut -c1) = "-" ]; then 15 | echo "$0: assuming arguments for bitcoind" 16 | 17 | set -- bitcoind "$@" 18 | fi 19 | 20 | if [ $(echo "$1" | cut -c1) = "-" ] || [ "$1" = "bitcoind" ]; then 21 | mkdir -p "$BITCOIN_DATA" 22 | chmod 700 "$BITCOIN_DATA" 23 | # Fix permissions for home dir. 24 | chown -R bitcoin:bitcoin "$(getent passwd bitcoin | cut -d: -f6)" 25 | # Fix permissions for bitcoin data dir. 26 | chown -R bitcoin:bitcoin "$BITCOIN_DATA" 27 | 28 | echo "$0: setting data directory to $BITCOIN_DATA" 29 | 30 | set -- "$@" -datadir="$BITCOIN_DATA" 31 | fi 32 | 33 | if [ "$1" = "bitcoind" ] || [ "$1" = "bitcoin-cli" ] || [ "$1" = "bitcoin-tx" ]; then 34 | echo 35 | exec gosu bitcoin "$@" 36 | fi 37 | 38 | echo 39 | exec "$@" 40 | -------------------------------------------------------------------------------- /22/docker-entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | if [ -n "${UID+x}" ] && [ "${UID}" != "0" ]; then 5 | usermod -u "$UID" bitcoin 6 | fi 7 | 8 | if [ -n "${GID+x}" ] && [ "${GID}" != "0" ]; then 9 | groupmod -g "$GID" bitcoin 10 | fi 11 | 12 | echo "$0: assuming uid:gid for bitcoin:bitcoin of $(id -u bitcoin):$(id -g bitcoin)" 13 | 14 | if [ $(echo "$1" | cut -c1) = "-" ]; then 15 | echo "$0: assuming arguments for bitcoind" 16 | 17 | set -- bitcoind "$@" 18 | fi 19 | 20 | if [ $(echo "$1" | cut -c1) = "-" ] || [ "$1" = "bitcoind" ]; then 21 | mkdir -p "$BITCOIN_DATA" 22 | chmod 700 "$BITCOIN_DATA" 23 | # Fix permissions for home dir. 24 | chown -R bitcoin:bitcoin "$(getent passwd bitcoin | cut -d: -f6)" 25 | # Fix permissions for bitcoin data dir. 26 | chown -R bitcoin:bitcoin "$BITCOIN_DATA" 27 | 28 | echo "$0: setting data directory to $BITCOIN_DATA" 29 | 30 | set -- "$@" -datadir="$BITCOIN_DATA" 31 | fi 32 | 33 | if [ "$1" = "bitcoind" ] || [ "$1" = "bitcoin-cli" ] || [ "$1" = "bitcoin-tx" ]; then 34 | echo 35 | exec gosu bitcoin "$@" 36 | fi 37 | 38 | echo 39 | exec "$@" 40 | -------------------------------------------------------------------------------- /24/docker-entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | if [ -n "${UID+x}" ] && [ "${UID}" != "0" ]; then 5 | usermod -u "$UID" bitcoin 6 | fi 7 | 8 | if [ -n "${GID+x}" ] && [ "${GID}" != "0" ]; then 9 | groupmod -g "$GID" bitcoin 10 | fi 11 | 12 | echo "$0: assuming uid:gid for bitcoin:bitcoin of $(id -u bitcoin):$(id -g bitcoin)" 13 | 14 | if [ $(echo "$1" | cut -c1) = "-" ]; then 15 | echo "$0: assuming arguments for bitcoind" 16 | 17 | set -- bitcoind "$@" 18 | fi 19 | 20 | if [ $(echo "$1" | cut -c1) = "-" ] || [ "$1" = "bitcoind" ]; then 21 | mkdir -p "$BITCOIN_DATA" 22 | chmod 700 "$BITCOIN_DATA" 23 | # Fix permissions for home dir. 24 | chown -R bitcoin:bitcoin "$(getent passwd bitcoin | cut -d: -f6)" 25 | # Fix permissions for bitcoin data dir. 26 | chown -R bitcoin:bitcoin "$BITCOIN_DATA" 27 | 28 | echo "$0: setting data directory to $BITCOIN_DATA" 29 | 30 | set -- "$@" -datadir="$BITCOIN_DATA" 31 | fi 32 | 33 | if [ "$1" = "bitcoind" ] || [ "$1" = "bitcoin-cli" ] || [ "$1" = "bitcoin-tx" ]; then 34 | echo 35 | exec gosu bitcoin "$@" 36 | fi 37 | 38 | echo 39 | exec "$@" 40 | -------------------------------------------------------------------------------- /25/docker-entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | if [ -n "${UID+x}" ] && [ "${UID}" != "0" ]; then 5 | usermod -u "$UID" bitcoin 6 | fi 7 | 8 | if [ -n "${GID+x}" ] && [ "${GID}" != "0" ]; then 9 | groupmod -g "$GID" bitcoin 10 | fi 11 | 12 | echo "$0: assuming uid:gid for bitcoin:bitcoin of $(id -u bitcoin):$(id -g bitcoin)" 13 | 14 | if [ $(echo "$1" | cut -c1) = "-" ]; then 15 | echo "$0: assuming arguments for bitcoind" 16 | 17 | set -- bitcoind "$@" 18 | fi 19 | 20 | if [ $(echo "$1" | cut -c1) = "-" ] || [ "$1" = "bitcoind" ]; then 21 | mkdir -p "$BITCOIN_DATA" 22 | chmod 700 "$BITCOIN_DATA" 23 | # Fix permissions for home dir. 24 | chown -R bitcoin:bitcoin "$(getent passwd bitcoin | cut -d: -f6)" 25 | # Fix permissions for bitcoin data dir. 26 | chown -R bitcoin:bitcoin "$BITCOIN_DATA" 27 | 28 | echo "$0: setting data directory to $BITCOIN_DATA" 29 | 30 | set -- "$@" -datadir="$BITCOIN_DATA" 31 | fi 32 | 33 | if [ "$1" = "bitcoind" ] || [ "$1" = "bitcoin-cli" ] || [ "$1" = "bitcoin-tx" ]; then 34 | echo 35 | exec gosu bitcoin "$@" 36 | fi 37 | 38 | echo 39 | exec "$@" 40 | -------------------------------------------------------------------------------- /26/docker-entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | if [ -n "${UID+x}" ] && [ "${UID}" != "0" ]; then 5 | usermod -u "$UID" bitcoin 6 | fi 7 | 8 | if [ -n "${GID+x}" ] && [ "${GID}" != "0" ]; then 9 | groupmod -g "$GID" bitcoin 10 | fi 11 | 12 | echo "$0: assuming uid:gid for bitcoin:bitcoin of $(id -u bitcoin):$(id -g bitcoin)" 13 | 14 | if [ $(echo "$1" | cut -c1) = "-" ]; then 15 | echo "$0: assuming arguments for bitcoind" 16 | 17 | set -- bitcoind "$@" 18 | fi 19 | 20 | if [ $(echo "$1" | cut -c1) = "-" ] || [ "$1" = "bitcoind" ]; then 21 | mkdir -p "$BITCOIN_DATA" 22 | chmod 700 "$BITCOIN_DATA" 23 | # Fix permissions for home dir. 24 | chown -R bitcoin:bitcoin "$(getent passwd bitcoin | cut -d: -f6)" 25 | # Fix permissions for bitcoin data dir. 26 | chown -R bitcoin:bitcoin "$BITCOIN_DATA" 27 | 28 | echo "$0: setting data directory to $BITCOIN_DATA" 29 | 30 | set -- "$@" -datadir="$BITCOIN_DATA" 31 | fi 32 | 33 | if [ "$1" = "bitcoind" ] || [ "$1" = "bitcoin-cli" ] || [ "$1" = "bitcoin-tx" ]; then 34 | echo 35 | exec gosu bitcoin "$@" 36 | fi 37 | 38 | echo 39 | exec "$@" 40 | -------------------------------------------------------------------------------- /27/docker-entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | if [ -n "${UID+x}" ] && [ "${UID}" != "0" ]; then 5 | usermod -u "$UID" bitcoin 6 | fi 7 | 8 | if [ -n "${GID+x}" ] && [ "${GID}" != "0" ]; then 9 | groupmod -g "$GID" bitcoin 10 | fi 11 | 12 | echo "$0: assuming uid:gid for bitcoin:bitcoin of $(id -u bitcoin):$(id -g bitcoin)" 13 | 14 | if [ $(echo "$1" | cut -c1) = "-" ]; then 15 | echo "$0: assuming arguments for bitcoind" 16 | 17 | set -- bitcoind "$@" 18 | fi 19 | 20 | if [ $(echo "$1" | cut -c1) = "-" ] || [ "$1" = "bitcoind" ]; then 21 | mkdir -p "$BITCOIN_DATA" 22 | chmod 700 "$BITCOIN_DATA" 23 | # Fix permissions for home dir. 24 | chown -R bitcoin:bitcoin "$(getent passwd bitcoin | cut -d: -f6)" 25 | # Fix permissions for bitcoin data dir. 26 | chown -R bitcoin:bitcoin "$BITCOIN_DATA" 27 | 28 | echo "$0: setting data directory to $BITCOIN_DATA" 29 | 30 | set -- "$@" -datadir="$BITCOIN_DATA" 31 | fi 32 | 33 | if [ "$1" = "bitcoind" ] || [ "$1" = "bitcoin-cli" ] || [ "$1" = "bitcoin-tx" ]; then 34 | echo 35 | exec gosu bitcoin "$@" 36 | fi 37 | 38 | echo 39 | exec "$@" 40 | -------------------------------------------------------------------------------- /28/docker-entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | if [ -n "${UID+x}" ] && [ "${UID}" != "0" ]; then 5 | usermod -u "$UID" bitcoin 6 | fi 7 | 8 | if [ -n "${GID+x}" ] && [ "${GID}" != "0" ]; then 9 | groupmod -g "$GID" bitcoin 10 | fi 11 | 12 | echo "$0: assuming uid:gid for bitcoin:bitcoin of $(id -u bitcoin):$(id -g bitcoin)" 13 | 14 | if [ $(echo "$1" | cut -c1) = "-" ]; then 15 | echo "$0: assuming arguments for bitcoind" 16 | 17 | set -- bitcoind "$@" 18 | fi 19 | 20 | if [ $(echo "$1" | cut -c1) = "-" ] || [ "$1" = "bitcoind" ]; then 21 | mkdir -p "$BITCOIN_DATA" 22 | chmod 700 "$BITCOIN_DATA" 23 | # Fix permissions for home dir. 24 | chown -R bitcoin:bitcoin "$(getent passwd bitcoin | cut -d: -f6)" 25 | # Fix permissions for bitcoin data dir. 26 | chown -R bitcoin:bitcoin "$BITCOIN_DATA" 27 | 28 | echo "$0: setting data directory to $BITCOIN_DATA" 29 | 30 | set -- "$@" -datadir="$BITCOIN_DATA" 31 | fi 32 | 33 | if [ "$1" = "bitcoind" ] || [ "$1" = "bitcoin-cli" ] || [ "$1" = "bitcoin-tx" ]; then 34 | echo 35 | exec gosu bitcoin "$@" 36 | fi 37 | 38 | echo 39 | exec "$@" 40 | -------------------------------------------------------------------------------- /29.1/docker-entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | if [ -n "${UID+x}" ] && [ "${UID}" != "0" ]; then 5 | usermod -u "$UID" bitcoin 6 | fi 7 | 8 | if [ -n "${GID+x}" ] && [ "${GID}" != "0" ]; then 9 | groupmod -g "$GID" bitcoin 10 | fi 11 | 12 | echo "$0: assuming uid:gid for bitcoin:bitcoin of $(id -u bitcoin):$(id -g bitcoin)" 13 | 14 | if [ $(echo "$1" | cut -c1) = "-" ]; then 15 | echo "$0: assuming arguments for bitcoind" 16 | 17 | set -- bitcoind "$@" 18 | fi 19 | 20 | if [ $(echo "$1" | cut -c1) = "-" ] || [ "$1" = "bitcoind" ]; then 21 | mkdir -p "$BITCOIN_DATA" 22 | chmod 700 "$BITCOIN_DATA" 23 | # Fix permissions for home dir. 24 | chown -R bitcoin:bitcoin "$(getent passwd bitcoin | cut -d: -f6)" 25 | # Fix permissions for bitcoin data dir. 26 | chown -R bitcoin:bitcoin "$BITCOIN_DATA" 27 | 28 | echo "$0: setting data directory to $BITCOIN_DATA" 29 | 30 | set -- "$@" -datadir="$BITCOIN_DATA" 31 | fi 32 | 33 | if [ "$1" = "bitcoind" ] || [ "$1" = "bitcoin-cli" ] || [ "$1" = "bitcoin-tx" ]; then 34 | echo 35 | exec gosu bitcoin "$@" 36 | fi 37 | 38 | echo 39 | exec "$@" 40 | -------------------------------------------------------------------------------- /29/docker-entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | if [ -n "${UID+x}" ] && [ "${UID}" != "0" ]; then 5 | usermod -u "$UID" bitcoin 6 | fi 7 | 8 | if [ -n "${GID+x}" ] && [ "${GID}" != "0" ]; then 9 | groupmod -g "$GID" bitcoin 10 | fi 11 | 12 | echo "$0: assuming uid:gid for bitcoin:bitcoin of $(id -u bitcoin):$(id -g bitcoin)" 13 | 14 | if [ $(echo "$1" | cut -c1) = "-" ]; then 15 | echo "$0: assuming arguments for bitcoind" 16 | 17 | set -- bitcoind "$@" 18 | fi 19 | 20 | if [ $(echo "$1" | cut -c1) = "-" ] || [ "$1" = "bitcoind" ]; then 21 | mkdir -p "$BITCOIN_DATA" 22 | chmod 700 "$BITCOIN_DATA" 23 | # Fix permissions for home dir. 24 | chown -R bitcoin:bitcoin "$(getent passwd bitcoin | cut -d: -f6)" 25 | # Fix permissions for bitcoin data dir. 26 | chown -R bitcoin:bitcoin "$BITCOIN_DATA" 27 | 28 | echo "$0: setting data directory to $BITCOIN_DATA" 29 | 30 | set -- "$@" -datadir="$BITCOIN_DATA" 31 | fi 32 | 33 | if [ "$1" = "bitcoind" ] || [ "$1" = "bitcoin-cli" ] || [ "$1" = "bitcoin-tx" ]; then 34 | echo 35 | exec gosu bitcoin "$@" 36 | fi 37 | 38 | echo 39 | exec "$@" 40 | -------------------------------------------------------------------------------- /30/docker-entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | if [ -n "${UID+x}" ] && [ "${UID}" != "0" ]; then 5 | usermod -u "$UID" bitcoin 6 | fi 7 | 8 | if [ -n "${GID+x}" ] && [ "${GID}" != "0" ]; then 9 | groupmod -g "$GID" bitcoin 10 | fi 11 | 12 | echo "$0: assuming uid:gid for bitcoin:bitcoin of $(id -u bitcoin):$(id -g bitcoin)" 13 | 14 | if [ $(echo "$1" | cut -c1) = "-" ]; then 15 | echo "$0: assuming arguments for bitcoind" 16 | 17 | set -- bitcoind "$@" 18 | fi 19 | 20 | if [ $(echo "$1" | cut -c1) = "-" ] || [ "$1" = "bitcoind" ]; then 21 | mkdir -p "$BITCOIN_DATA" 22 | chmod 700 "$BITCOIN_DATA" 23 | # Fix permissions for home dir. 24 | chown -R bitcoin:bitcoin "$(getent passwd bitcoin | cut -d: -f6)" 25 | # Fix permissions for bitcoin data dir. 26 | chown -R bitcoin:bitcoin "$BITCOIN_DATA" 27 | 28 | echo "$0: setting data directory to $BITCOIN_DATA" 29 | 30 | set -- "$@" -datadir="$BITCOIN_DATA" 31 | fi 32 | 33 | if [ "$1" = "bitcoind" ] || [ "$1" = "bitcoin-cli" ] || [ "$1" = "bitcoin-tx" ]; then 34 | echo 35 | exec gosu bitcoin "$@" 36 | fi 37 | 38 | echo 39 | exec "$@" 40 | -------------------------------------------------------------------------------- /22/alpine/docker-entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | set -e 3 | 4 | if [ -n "${UID+x}" ] && [ "${UID}" != "0" ]; then 5 | usermod -u "$UID" bitcoin 6 | fi 7 | 8 | if [ -n "${GID+x}" ] && [ "${GID}" != "0" ]; then 9 | groupmod -g "$GID" bitcoin 10 | fi 11 | 12 | echo "$0: assuming uid:gid for bitcoin:bitcoin of $(id -u bitcoin):$(id -g bitcoin)" 13 | 14 | if [ $(echo "$1" | cut -c1) = "-" ]; then 15 | echo "$0: assuming arguments for bitcoind" 16 | 17 | set -- bitcoind "$@" 18 | fi 19 | 20 | if [ $(echo "$1" | cut -c1) = "-" ] || [ "$1" = "bitcoind" ]; then 21 | mkdir -p "$BITCOIN_DATA" 22 | chmod 700 "$BITCOIN_DATA" 23 | # Fix permissions for home dir. 24 | chown -R bitcoin:bitcoin "$(getent passwd bitcoin | cut -d: -f6)" 25 | # Fix permissions for bitcoin data dir. 26 | chown -R bitcoin:bitcoin "$BITCOIN_DATA" 27 | 28 | echo "$0: setting data directory to $BITCOIN_DATA" 29 | 30 | set -- "$@" -datadir="$BITCOIN_DATA" 31 | fi 32 | 33 | if [ "$1" = "bitcoind" ] || [ "$1" = "bitcoin-cli" ] || [ "$1" = "bitcoin-tx" ]; then 34 | echo 35 | exec su-exec bitcoin "$@" 36 | fi 37 | 38 | echo 39 | exec "$@" 40 | -------------------------------------------------------------------------------- /24/alpine/docker-entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | set -e 3 | 4 | if [ -n "${UID+x}" ] && [ "${UID}" != "0" ]; then 5 | usermod -u "$UID" bitcoin 6 | fi 7 | 8 | if [ -n "${GID+x}" ] && [ "${GID}" != "0" ]; then 9 | groupmod -g "$GID" bitcoin 10 | fi 11 | 12 | echo "$0: assuming uid:gid for bitcoin:bitcoin of $(id -u bitcoin):$(id -g bitcoin)" 13 | 14 | if [ $(echo "$1" | cut -c1) = "-" ]; then 15 | echo "$0: assuming arguments for bitcoind" 16 | 17 | set -- bitcoind "$@" 18 | fi 19 | 20 | if [ $(echo "$1" | cut -c1) = "-" ] || [ "$1" = "bitcoind" ]; then 21 | mkdir -p "$BITCOIN_DATA" 22 | chmod 700 "$BITCOIN_DATA" 23 | # Fix permissions for home dir. 24 | chown -R bitcoin:bitcoin "$(getent passwd bitcoin | cut -d: -f6)" 25 | # Fix permissions for bitcoin data dir. 26 | chown -R bitcoin:bitcoin "$BITCOIN_DATA" 27 | 28 | echo "$0: setting data directory to $BITCOIN_DATA" 29 | 30 | set -- "$@" -datadir="$BITCOIN_DATA" 31 | fi 32 | 33 | if [ "$1" = "bitcoind" ] || [ "$1" = "bitcoin-cli" ] || [ "$1" = "bitcoin-tx" ]; then 34 | echo 35 | exec su-exec bitcoin "$@" 36 | fi 37 | 38 | echo 39 | exec "$@" 40 | -------------------------------------------------------------------------------- /25/alpine/docker-entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | set -e 3 | 4 | if [ -n "${UID+x}" ] && [ "${UID}" != "0" ]; then 5 | usermod -u "$UID" bitcoin 6 | fi 7 | 8 | if [ -n "${GID+x}" ] && [ "${GID}" != "0" ]; then 9 | groupmod -g "$GID" bitcoin 10 | fi 11 | 12 | echo "$0: assuming uid:gid for bitcoin:bitcoin of $(id -u bitcoin):$(id -g bitcoin)" 13 | 14 | if [ $(echo "$1" | cut -c1) = "-" ]; then 15 | echo "$0: assuming arguments for bitcoind" 16 | 17 | set -- bitcoind "$@" 18 | fi 19 | 20 | if [ $(echo "$1" | cut -c1) = "-" ] || [ "$1" = "bitcoind" ]; then 21 | mkdir -p "$BITCOIN_DATA" 22 | chmod 700 "$BITCOIN_DATA" 23 | # Fix permissions for home dir. 24 | chown -R bitcoin:bitcoin "$(getent passwd bitcoin | cut -d: -f6)" 25 | # Fix permissions for bitcoin data dir. 26 | chown -R bitcoin:bitcoin "$BITCOIN_DATA" 27 | 28 | echo "$0: setting data directory to $BITCOIN_DATA" 29 | 30 | set -- "$@" -datadir="$BITCOIN_DATA" 31 | fi 32 | 33 | if [ "$1" = "bitcoind" ] || [ "$1" = "bitcoin-cli" ] || [ "$1" = "bitcoin-tx" ]; then 34 | echo 35 | exec su-exec bitcoin "$@" 36 | fi 37 | 38 | echo 39 | exec "$@" 40 | -------------------------------------------------------------------------------- /26/alpine/docker-entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | set -e 3 | 4 | if [ -n "${UID+x}" ] && [ "${UID}" != "0" ]; then 5 | usermod -u "$UID" bitcoin 6 | fi 7 | 8 | if [ -n "${GID+x}" ] && [ "${GID}" != "0" ]; then 9 | groupmod -g "$GID" bitcoin 10 | fi 11 | 12 | echo "$0: assuming uid:gid for bitcoin:bitcoin of $(id -u bitcoin):$(id -g bitcoin)" 13 | 14 | if [ $(echo "$1" | cut -c1) = "-" ]; then 15 | echo "$0: assuming arguments for bitcoind" 16 | 17 | set -- bitcoind "$@" 18 | fi 19 | 20 | if [ $(echo "$1" | cut -c1) = "-" ] || [ "$1" = "bitcoind" ]; then 21 | mkdir -p "$BITCOIN_DATA" 22 | chmod 700 "$BITCOIN_DATA" 23 | # Fix permissions for home dir. 24 | chown -R bitcoin:bitcoin "$(getent passwd bitcoin | cut -d: -f6)" 25 | # Fix permissions for bitcoin data dir. 26 | chown -R bitcoin:bitcoin "$BITCOIN_DATA" 27 | 28 | echo "$0: setting data directory to $BITCOIN_DATA" 29 | 30 | set -- "$@" -datadir="$BITCOIN_DATA" 31 | fi 32 | 33 | if [ "$1" = "bitcoind" ] || [ "$1" = "bitcoin-cli" ] || [ "$1" = "bitcoin-tx" ]; then 34 | echo 35 | exec su-exec bitcoin "$@" 36 | fi 37 | 38 | echo 39 | exec "$@" 40 | -------------------------------------------------------------------------------- /27/alpine/docker-entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | set -e 3 | 4 | if [ -n "${UID+x}" ] && [ "${UID}" != "0" ]; then 5 | usermod -u "$UID" bitcoin 6 | fi 7 | 8 | if [ -n "${GID+x}" ] && [ "${GID}" != "0" ]; then 9 | groupmod -g "$GID" bitcoin 10 | fi 11 | 12 | echo "$0: assuming uid:gid for bitcoin:bitcoin of $(id -u bitcoin):$(id -g bitcoin)" 13 | 14 | if [ $(echo "$1" | cut -c1) = "-" ]; then 15 | echo "$0: assuming arguments for bitcoind" 16 | 17 | set -- bitcoind "$@" 18 | fi 19 | 20 | if [ $(echo "$1" | cut -c1) = "-" ] || [ "$1" = "bitcoind" ]; then 21 | mkdir -p "$BITCOIN_DATA" 22 | chmod 700 "$BITCOIN_DATA" 23 | # Fix permissions for home dir. 24 | chown -R bitcoin:bitcoin "$(getent passwd bitcoin | cut -d: -f6)" 25 | # Fix permissions for bitcoin data dir. 26 | chown -R bitcoin:bitcoin "$BITCOIN_DATA" 27 | 28 | echo "$0: setting data directory to $BITCOIN_DATA" 29 | 30 | set -- "$@" -datadir="$BITCOIN_DATA" 31 | fi 32 | 33 | if [ "$1" = "bitcoind" ] || [ "$1" = "bitcoin-cli" ] || [ "$1" = "bitcoin-tx" ]; then 34 | echo 35 | exec su-exec bitcoin "$@" 36 | fi 37 | 38 | echo 39 | exec "$@" 40 | -------------------------------------------------------------------------------- /28/alpine/docker-entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | set -e 3 | 4 | if [ -n "${UID+x}" ] && [ "${UID}" != "0" ]; then 5 | usermod -u "$UID" bitcoin 6 | fi 7 | 8 | if [ -n "${GID+x}" ] && [ "${GID}" != "0" ]; then 9 | groupmod -g "$GID" bitcoin 10 | fi 11 | 12 | echo "$0: assuming uid:gid for bitcoin:bitcoin of $(id -u bitcoin):$(id -g bitcoin)" 13 | 14 | if [ $(echo "$1" | cut -c1) = "-" ]; then 15 | echo "$0: assuming arguments for bitcoind" 16 | 17 | set -- bitcoind "$@" 18 | fi 19 | 20 | if [ $(echo "$1" | cut -c1) = "-" ] || [ "$1" = "bitcoind" ]; then 21 | mkdir -p "$BITCOIN_DATA" 22 | chmod 700 "$BITCOIN_DATA" 23 | # Fix permissions for home dir. 24 | chown -R bitcoin:bitcoin "$(getent passwd bitcoin | cut -d: -f6)" 25 | # Fix permissions for bitcoin data dir. 26 | chown -R bitcoin:bitcoin "$BITCOIN_DATA" 27 | 28 | echo "$0: setting data directory to $BITCOIN_DATA" 29 | 30 | set -- "$@" -datadir="$BITCOIN_DATA" 31 | fi 32 | 33 | if [ "$1" = "bitcoind" ] || [ "$1" = "bitcoin-cli" ] || [ "$1" = "bitcoin-tx" ]; then 34 | echo 35 | exec su-exec bitcoin "$@" 36 | fi 37 | 38 | echo 39 | exec "$@" 40 | -------------------------------------------------------------------------------- /29/alpine/docker-entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | set -e 3 | 4 | if [ -n "${UID+x}" ] && [ "${UID}" != "0" ]; then 5 | usermod -u "$UID" bitcoin 6 | fi 7 | 8 | if [ -n "${GID+x}" ] && [ "${GID}" != "0" ]; then 9 | groupmod -g "$GID" bitcoin 10 | fi 11 | 12 | echo "$0: assuming uid:gid for bitcoin:bitcoin of $(id -u bitcoin):$(id -g bitcoin)" 13 | 14 | if [ $(echo "$1" | cut -c1) = "-" ]; then 15 | echo "$0: assuming arguments for bitcoind" 16 | 17 | set -- bitcoind "$@" 18 | fi 19 | 20 | if [ $(echo "$1" | cut -c1) = "-" ] || [ "$1" = "bitcoind" ]; then 21 | mkdir -p "$BITCOIN_DATA" 22 | chmod 700 "$BITCOIN_DATA" 23 | # Fix permissions for home dir. 24 | chown -R bitcoin:bitcoin "$(getent passwd bitcoin | cut -d: -f6)" 25 | # Fix permissions for bitcoin data dir. 26 | chown -R bitcoin:bitcoin "$BITCOIN_DATA" 27 | 28 | echo "$0: setting data directory to $BITCOIN_DATA" 29 | 30 | set -- "$@" -datadir="$BITCOIN_DATA" 31 | fi 32 | 33 | if [ "$1" = "bitcoind" ] || [ "$1" = "bitcoin-cli" ] || [ "$1" = "bitcoin-tx" ]; then 34 | echo 35 | exec su-exec bitcoin "$@" 36 | fi 37 | 38 | echo 39 | exec "$@" 40 | -------------------------------------------------------------------------------- /30/alpine/docker-entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | set -e 3 | 4 | if [ -n "${UID+x}" ] && [ "${UID}" != "0" ]; then 5 | usermod -u "$UID" bitcoin 6 | fi 7 | 8 | if [ -n "${GID+x}" ] && [ "${GID}" != "0" ]; then 9 | groupmod -g "$GID" bitcoin 10 | fi 11 | 12 | echo "$0: assuming uid:gid for bitcoin:bitcoin of $(id -u bitcoin):$(id -g bitcoin)" 13 | 14 | if [ $(echo "$1" | cut -c1) = "-" ]; then 15 | echo "$0: assuming arguments for bitcoind" 16 | 17 | set -- bitcoind "$@" 18 | fi 19 | 20 | if [ $(echo "$1" | cut -c1) = "-" ] || [ "$1" = "bitcoind" ]; then 21 | mkdir -p "$BITCOIN_DATA" 22 | chmod 700 "$BITCOIN_DATA" 23 | # Fix permissions for home dir. 24 | chown -R bitcoin:bitcoin "$(getent passwd bitcoin | cut -d: -f6)" 25 | # Fix permissions for bitcoin data dir. 26 | chown -R bitcoin:bitcoin "$BITCOIN_DATA" 27 | 28 | echo "$0: setting data directory to $BITCOIN_DATA" 29 | 30 | set -- "$@" -datadir="$BITCOIN_DATA" 31 | fi 32 | 33 | if [ "$1" = "bitcoind" ] || [ "$1" = "bitcoin-cli" ] || [ "$1" = "bitcoin-tx" ]; then 34 | echo 35 | exec su-exec bitcoin "$@" 36 | fi 37 | 38 | echo 39 | exec "$@" 40 | -------------------------------------------------------------------------------- /0.11/alpine/docker-entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | set -e 3 | 4 | if [ -n "${UID+x}" ] && [ "${UID}" != "0" ]; then 5 | usermod -u "$UID" bitcoin 6 | fi 7 | 8 | if [ -n "${GID+x}" ] && [ "${GID}" != "0" ]; then 9 | groupmod -g "$GID" bitcoin 10 | fi 11 | 12 | echo "$0: assuming uid:gid for bitcoin:bitcoin of $(id -u bitcoin):$(id -g bitcoin)" 13 | 14 | if [ $(echo "$1" | cut -c1) = "-" ]; then 15 | echo "$0: assuming arguments for bitcoind" 16 | 17 | set -- bitcoind "$@" 18 | fi 19 | 20 | if [ $(echo "$1" | cut -c1) = "-" ] || [ "$1" = "bitcoind" ]; then 21 | mkdir -p "$BITCOIN_DATA" 22 | chmod 700 "$BITCOIN_DATA" 23 | # Fix permissions for home dir. 24 | chown -R bitcoin:bitcoin "$(getent passwd bitcoin | cut -d: -f6)" 25 | # Fix permissions for bitcoin data dir. 26 | chown -R bitcoin:bitcoin "$BITCOIN_DATA" 27 | 28 | echo "$0: setting data directory to $BITCOIN_DATA" 29 | 30 | set -- "$@" -datadir="$BITCOIN_DATA" 31 | fi 32 | 33 | if [ "$1" = "bitcoind" ] || [ "$1" = "bitcoin-cli" ] || [ "$1" = "bitcoin-tx" ]; then 34 | echo 35 | exec su-exec bitcoin "$@" 36 | fi 37 | 38 | echo 39 | exec "$@" 40 | -------------------------------------------------------------------------------- /0.12/alpine/docker-entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | set -e 3 | 4 | if [ -n "${UID+x}" ] && [ "${UID}" != "0" ]; then 5 | usermod -u "$UID" bitcoin 6 | fi 7 | 8 | if [ -n "${GID+x}" ] && [ "${GID}" != "0" ]; then 9 | groupmod -g "$GID" bitcoin 10 | fi 11 | 12 | echo "$0: assuming uid:gid for bitcoin:bitcoin of $(id -u bitcoin):$(id -g bitcoin)" 13 | 14 | if [ $(echo "$1" | cut -c1) = "-" ]; then 15 | echo "$0: assuming arguments for bitcoind" 16 | 17 | set -- bitcoind "$@" 18 | fi 19 | 20 | if [ $(echo "$1" | cut -c1) = "-" ] || [ "$1" = "bitcoind" ]; then 21 | mkdir -p "$BITCOIN_DATA" 22 | chmod 700 "$BITCOIN_DATA" 23 | # Fix permissions for home dir. 24 | chown -R bitcoin:bitcoin "$(getent passwd bitcoin | cut -d: -f6)" 25 | # Fix permissions for bitcoin data dir. 26 | chown -R bitcoin:bitcoin "$BITCOIN_DATA" 27 | 28 | echo "$0: setting data directory to $BITCOIN_DATA" 29 | 30 | set -- "$@" -datadir="$BITCOIN_DATA" 31 | fi 32 | 33 | if [ "$1" = "bitcoind" ] || [ "$1" = "bitcoin-cli" ] || [ "$1" = "bitcoin-tx" ]; then 34 | echo 35 | exec su-exec bitcoin "$@" 36 | fi 37 | 38 | echo 39 | exec "$@" 40 | -------------------------------------------------------------------------------- /0.13/alpine/docker-entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | set -e 3 | 4 | if [ -n "${UID+x}" ] && [ "${UID}" != "0" ]; then 5 | usermod -u "$UID" bitcoin 6 | fi 7 | 8 | if [ -n "${GID+x}" ] && [ "${GID}" != "0" ]; then 9 | groupmod -g "$GID" bitcoin 10 | fi 11 | 12 | echo "$0: assuming uid:gid for bitcoin:bitcoin of $(id -u bitcoin):$(id -g bitcoin)" 13 | 14 | if [ $(echo "$1" | cut -c1) = "-" ]; then 15 | echo "$0: assuming arguments for bitcoind" 16 | 17 | set -- bitcoind "$@" 18 | fi 19 | 20 | if [ $(echo "$1" | cut -c1) = "-" ] || [ "$1" = "bitcoind" ]; then 21 | mkdir -p "$BITCOIN_DATA" 22 | chmod 700 "$BITCOIN_DATA" 23 | # Fix permissions for home dir. 24 | chown -R bitcoin:bitcoin "$(getent passwd bitcoin | cut -d: -f6)" 25 | # Fix permissions for bitcoin data dir. 26 | chown -R bitcoin:bitcoin "$BITCOIN_DATA" 27 | 28 | echo "$0: setting data directory to $BITCOIN_DATA" 29 | 30 | set -- "$@" -datadir="$BITCOIN_DATA" 31 | fi 32 | 33 | if [ "$1" = "bitcoind" ] || [ "$1" = "bitcoin-cli" ] || [ "$1" = "bitcoin-tx" ]; then 34 | echo 35 | exec su-exec bitcoin "$@" 36 | fi 37 | 38 | echo 39 | exec "$@" 40 | -------------------------------------------------------------------------------- /0.16/alpine/docker-entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | set -e 3 | 4 | if [ -n "${UID+x}" ] && [ "${UID}" != "0" ]; then 5 | usermod -u "$UID" bitcoin 6 | fi 7 | 8 | if [ -n "${GID+x}" ] && [ "${GID}" != "0" ]; then 9 | groupmod -g "$GID" bitcoin 10 | fi 11 | 12 | echo "$0: assuming uid:gid for bitcoin:bitcoin of $(id -u bitcoin):$(id -g bitcoin)" 13 | 14 | if [ $(echo "$1" | cut -c1) = "-" ]; then 15 | echo "$0: assuming arguments for bitcoind" 16 | 17 | set -- bitcoind "$@" 18 | fi 19 | 20 | if [ $(echo "$1" | cut -c1) = "-" ] || [ "$1" = "bitcoind" ]; then 21 | mkdir -p "$BITCOIN_DATA" 22 | chmod 700 "$BITCOIN_DATA" 23 | # Fix permissions for home dir. 24 | chown -R bitcoin:bitcoin "$(getent passwd bitcoin | cut -d: -f6)" 25 | # Fix permissions for bitcoin data dir. 26 | chown -R bitcoin:bitcoin "$BITCOIN_DATA" 27 | 28 | echo "$0: setting data directory to $BITCOIN_DATA" 29 | 30 | set -- "$@" -datadir="$BITCOIN_DATA" 31 | fi 32 | 33 | if [ "$1" = "bitcoind" ] || [ "$1" = "bitcoin-cli" ] || [ "$1" = "bitcoin-tx" ]; then 34 | echo 35 | exec su-exec bitcoin "$@" 36 | fi 37 | 38 | echo 39 | exec "$@" 40 | -------------------------------------------------------------------------------- /0.17/alpine/docker-entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | set -e 3 | 4 | if [ -n "${UID+x}" ] && [ "${UID}" != "0" ]; then 5 | usermod -u "$UID" bitcoin 6 | fi 7 | 8 | if [ -n "${GID+x}" ] && [ "${GID}" != "0" ]; then 9 | groupmod -g "$GID" bitcoin 10 | fi 11 | 12 | echo "$0: assuming uid:gid for bitcoin:bitcoin of $(id -u bitcoin):$(id -g bitcoin)" 13 | 14 | if [ $(echo "$1" | cut -c1) = "-" ]; then 15 | echo "$0: assuming arguments for bitcoind" 16 | 17 | set -- bitcoind "$@" 18 | fi 19 | 20 | if [ $(echo "$1" | cut -c1) = "-" ] || [ "$1" = "bitcoind" ]; then 21 | mkdir -p "$BITCOIN_DATA" 22 | chmod 700 "$BITCOIN_DATA" 23 | # Fix permissions for home dir. 24 | chown -R bitcoin:bitcoin "$(getent passwd bitcoin | cut -d: -f6)" 25 | # Fix permissions for bitcoin data dir. 26 | chown -R bitcoin:bitcoin "$BITCOIN_DATA" 27 | 28 | echo "$0: setting data directory to $BITCOIN_DATA" 29 | 30 | set -- "$@" -datadir="$BITCOIN_DATA" 31 | fi 32 | 33 | if [ "$1" = "bitcoind" ] || [ "$1" = "bitcoin-cli" ] || [ "$1" = "bitcoin-tx" ]; then 34 | echo 35 | exec su-exec bitcoin "$@" 36 | fi 37 | 38 | echo 39 | exec "$@" 40 | -------------------------------------------------------------------------------- /0.18/alpine/docker-entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | set -e 3 | 4 | if [ -n "${UID+x}" ] && [ "${UID}" != "0" ]; then 5 | usermod -u "$UID" bitcoin 6 | fi 7 | 8 | if [ -n "${GID+x}" ] && [ "${GID}" != "0" ]; then 9 | groupmod -g "$GID" bitcoin 10 | fi 11 | 12 | echo "$0: assuming uid:gid for bitcoin:bitcoin of $(id -u bitcoin):$(id -g bitcoin)" 13 | 14 | if [ $(echo "$1" | cut -c1) = "-" ]; then 15 | echo "$0: assuming arguments for bitcoind" 16 | 17 | set -- bitcoind "$@" 18 | fi 19 | 20 | if [ $(echo "$1" | cut -c1) = "-" ] || [ "$1" = "bitcoind" ]; then 21 | mkdir -p "$BITCOIN_DATA" 22 | chmod 700 "$BITCOIN_DATA" 23 | # Fix permissions for home dir. 24 | chown -R bitcoin:bitcoin "$(getent passwd bitcoin | cut -d: -f6)" 25 | # Fix permissions for bitcoin data dir. 26 | chown -R bitcoin:bitcoin "$BITCOIN_DATA" 27 | 28 | echo "$0: setting data directory to $BITCOIN_DATA" 29 | 30 | set -- "$@" -datadir="$BITCOIN_DATA" 31 | fi 32 | 33 | if [ "$1" = "bitcoind" ] || [ "$1" = "bitcoin-cli" ] || [ "$1" = "bitcoin-tx" ]; then 34 | echo 35 | exec su-exec bitcoin "$@" 36 | fi 37 | 38 | echo 39 | exec "$@" 40 | -------------------------------------------------------------------------------- /0.19/alpine/docker-entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | set -e 3 | 4 | if [ -n "${UID+x}" ] && [ "${UID}" != "0" ]; then 5 | usermod -u "$UID" bitcoin 6 | fi 7 | 8 | if [ -n "${GID+x}" ] && [ "${GID}" != "0" ]; then 9 | groupmod -g "$GID" bitcoin 10 | fi 11 | 12 | echo "$0: assuming uid:gid for bitcoin:bitcoin of $(id -u bitcoin):$(id -g bitcoin)" 13 | 14 | if [ $(echo "$1" | cut -c1) = "-" ]; then 15 | echo "$0: assuming arguments for bitcoind" 16 | 17 | set -- bitcoind "$@" 18 | fi 19 | 20 | if [ $(echo "$1" | cut -c1) = "-" ] || [ "$1" = "bitcoind" ]; then 21 | mkdir -p "$BITCOIN_DATA" 22 | chmod 700 "$BITCOIN_DATA" 23 | # Fix permissions for home dir. 24 | chown -R bitcoin:bitcoin "$(getent passwd bitcoin | cut -d: -f6)" 25 | # Fix permissions for bitcoin data dir. 26 | chown -R bitcoin:bitcoin "$BITCOIN_DATA" 27 | 28 | echo "$0: setting data directory to $BITCOIN_DATA" 29 | 30 | set -- "$@" -datadir="$BITCOIN_DATA" 31 | fi 32 | 33 | if [ "$1" = "bitcoind" ] || [ "$1" = "bitcoin-cli" ] || [ "$1" = "bitcoin-tx" ]; then 34 | echo 35 | exec su-exec bitcoin "$@" 36 | fi 37 | 38 | echo 39 | exec "$@" 40 | -------------------------------------------------------------------------------- /0.20/alpine/docker-entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | set -e 3 | 4 | if [ -n "${UID+x}" ] && [ "${UID}" != "0" ]; then 5 | usermod -u "$UID" bitcoin 6 | fi 7 | 8 | if [ -n "${GID+x}" ] && [ "${GID}" != "0" ]; then 9 | groupmod -g "$GID" bitcoin 10 | fi 11 | 12 | echo "$0: assuming uid:gid for bitcoin:bitcoin of $(id -u bitcoin):$(id -g bitcoin)" 13 | 14 | if [ $(echo "$1" | cut -c1) = "-" ]; then 15 | echo "$0: assuming arguments for bitcoind" 16 | 17 | set -- bitcoind "$@" 18 | fi 19 | 20 | if [ $(echo "$1" | cut -c1) = "-" ] || [ "$1" = "bitcoind" ]; then 21 | mkdir -p "$BITCOIN_DATA" 22 | chmod 700 "$BITCOIN_DATA" 23 | # Fix permissions for home dir. 24 | chown -R bitcoin:bitcoin "$(getent passwd bitcoin | cut -d: -f6)" 25 | # Fix permissions for bitcoin data dir. 26 | chown -R bitcoin:bitcoin "$BITCOIN_DATA" 27 | 28 | echo "$0: setting data directory to $BITCOIN_DATA" 29 | 30 | set -- "$@" -datadir="$BITCOIN_DATA" 31 | fi 32 | 33 | if [ "$1" = "bitcoind" ] || [ "$1" = "bitcoin-cli" ] || [ "$1" = "bitcoin-tx" ]; then 34 | echo 35 | exec su-exec bitcoin "$@" 36 | fi 37 | 38 | echo 39 | exec "$@" 40 | -------------------------------------------------------------------------------- /0.21/alpine/docker-entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | set -e 3 | 4 | if [ -n "${UID+x}" ] && [ "${UID}" != "0" ]; then 5 | usermod -u "$UID" bitcoin 6 | fi 7 | 8 | if [ -n "${GID+x}" ] && [ "${GID}" != "0" ]; then 9 | groupmod -g "$GID" bitcoin 10 | fi 11 | 12 | echo "$0: assuming uid:gid for bitcoin:bitcoin of $(id -u bitcoin):$(id -g bitcoin)" 13 | 14 | if [ $(echo "$1" | cut -c1) = "-" ]; then 15 | echo "$0: assuming arguments for bitcoind" 16 | 17 | set -- bitcoind "$@" 18 | fi 19 | 20 | if [ $(echo "$1" | cut -c1) = "-" ] || [ "$1" = "bitcoind" ]; then 21 | mkdir -p "$BITCOIN_DATA" 22 | chmod 700 "$BITCOIN_DATA" 23 | # Fix permissions for home dir. 24 | chown -R bitcoin:bitcoin "$(getent passwd bitcoin | cut -d: -f6)" 25 | # Fix permissions for bitcoin data dir. 26 | chown -R bitcoin:bitcoin "$BITCOIN_DATA" 27 | 28 | echo "$0: setting data directory to $BITCOIN_DATA" 29 | 30 | set -- "$@" -datadir="$BITCOIN_DATA" 31 | fi 32 | 33 | if [ "$1" = "bitcoind" ] || [ "$1" = "bitcoin-cli" ] || [ "$1" = "bitcoin-tx" ]; then 34 | echo 35 | exec su-exec bitcoin "$@" 36 | fi 37 | 38 | echo 39 | exec "$@" 40 | -------------------------------------------------------------------------------- /29.1/alpine/docker-entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | set -e 3 | 4 | if [ -n "${UID+x}" ] && [ "${UID}" != "0" ]; then 5 | usermod -u "$UID" bitcoin 6 | fi 7 | 8 | if [ -n "${GID+x}" ] && [ "${GID}" != "0" ]; then 9 | groupmod -g "$GID" bitcoin 10 | fi 11 | 12 | echo "$0: assuming uid:gid for bitcoin:bitcoin of $(id -u bitcoin):$(id -g bitcoin)" 13 | 14 | if [ $(echo "$1" | cut -c1) = "-" ]; then 15 | echo "$0: assuming arguments for bitcoind" 16 | 17 | set -- bitcoind "$@" 18 | fi 19 | 20 | if [ $(echo "$1" | cut -c1) = "-" ] || [ "$1" = "bitcoind" ]; then 21 | mkdir -p "$BITCOIN_DATA" 22 | chmod 700 "$BITCOIN_DATA" 23 | # Fix permissions for home dir. 24 | chown -R bitcoin:bitcoin "$(getent passwd bitcoin | cut -d: -f6)" 25 | # Fix permissions for bitcoin data dir. 26 | chown -R bitcoin:bitcoin "$BITCOIN_DATA" 27 | 28 | echo "$0: setting data directory to $BITCOIN_DATA" 29 | 30 | set -- "$@" -datadir="$BITCOIN_DATA" 31 | fi 32 | 33 | if [ "$1" = "bitcoind" ] || [ "$1" = "bitcoin-cli" ] || [ "$1" = "bitcoin-tx" ]; then 34 | echo 35 | exec su-exec bitcoin "$@" 36 | fi 37 | 38 | echo 39 | exec "$@" 40 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2015 Rui Marinho 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in 13 | all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | THE SOFTWARE. 22 | -------------------------------------------------------------------------------- /0.11/alpine/patches/warnings.patch: -------------------------------------------------------------------------------- 1 | diff --git Makefile.am Makefile.am 2 | index ab68d8fa6..4600e5696 100644 3 | --- Makefile.am 4 | +++ Makefile.am 5 | @@ -1,5 +1,6 @@ 6 | ACLOCAL_AMFLAGS = -I build-aux/m4 7 | SUBDIRS = src 8 | +ARFLAGS=cr 9 | .PHONY: deploy FORCE 10 | 11 | GZIP_ENV="-9n" 12 | diff --git configure.ac configure.ac 13 | index 5debd219e..da7754042 100644 14 | --- configure.ac 15 | +++ configure.ac 16 | @@ -1,5 +1,6 @@ 17 | dnl require autoconf 2.60 (AS_ECHO/AS_ECHO_N) 18 | AC_PREREQ([2.60]) 19 | +ARFLAGS=cr 20 | define(_CLIENT_VERSION_MAJOR, 0) 21 | define(_CLIENT_VERSION_MINOR, 11) 22 | define(_CLIENT_VERSION_REVISION, 2) 23 | diff --git src/compat.h src/compat.h 24 | index 20c2a2514..feaa544e2 100644 25 | --- src/compat.h 26 | +++ src/compat.h 27 | @@ -32,7 +32,7 @@ 28 | #include 29 | #include 30 | #else 31 | -#include 32 | +#include 33 | #include 34 | #include 35 | #include 36 | diff --git src/secp256k1/configure.ac src/secp256k1/configure.ac 37 | index 3dc182951..8d85fb225 100644 38 | --- src/secp256k1/configure.ac 39 | +++ src/secp256k1/configure.ac 40 | @@ -1,4 +1,5 @@ 41 | AC_PREREQ([2.60]) 42 | +AR_FLAGS=cr 43 | AC_INIT([libsecp256k1],[0.1]) 44 | AC_CONFIG_AUX_DIR([build-aux]) 45 | AC_CONFIG_MACRO_DIR([build-aux/m4]) 46 | /bitcoin-0.11.2 # 47 | -------------------------------------------------------------------------------- /0.12/alpine/patches/boost.patch: -------------------------------------------------------------------------------- 1 | diff --git src/txmempool.h src/txmempool.h 2 | index 5997346b0..c7bc73a09 100644 3 | --- src/txmempool.h 4 | +++ src/txmempool.h 5 | @@ -201,7 +201,7 @@ struct mempoolentry_txid 6 | class CompareTxMemPoolEntryByDescendantScore 7 | { 8 | public: 9 | - bool operator()(const CTxMemPoolEntry& a, const CTxMemPoolEntry& b) 10 | + bool operator()(const CTxMemPoolEntry& a, const CTxMemPoolEntry& b) const 11 | { 12 | bool fUseADescendants = UseDescendantScore(a); 13 | bool fUseBDescendants = UseDescendantScore(b); 14 | @@ -223,7 +223,7 @@ public: 15 | } 16 | 17 | // Calculate which score to use for an entry (avoiding division). 18 | - bool UseDescendantScore(const CTxMemPoolEntry &a) 19 | + bool UseDescendantScore(const CTxMemPoolEntry &a) const 20 | { 21 | double f1 = (double)a.GetModifiedFee() * a.GetSizeWithDescendants(); 22 | double f2 = (double)a.GetModFeesWithDescendants() * a.GetTxSize(); 23 | @@ -238,7 +238,7 @@ public: 24 | class CompareTxMemPoolEntryByScore 25 | { 26 | public: 27 | - bool operator()(const CTxMemPoolEntry& a, const CTxMemPoolEntry& b) 28 | + bool operator()(const CTxMemPoolEntry& a, const CTxMemPoolEntry& b) const 29 | { 30 | double f1 = (double)a.GetModifiedFee() * b.GetTxSize(); 31 | double f2 = (double)b.GetModifiedFee() * a.GetTxSize(); 32 | @@ -252,7 +252,7 @@ public: 33 | class CompareTxMemPoolEntryByEntryTime 34 | { 35 | public: 36 | - bool operator()(const CTxMemPoolEntry& a, const CTxMemPoolEntry& b) 37 | + bool operator()(const CTxMemPoolEntry& a, const CTxMemPoolEntry& b) const 38 | { 39 | return a.GetTime() < b.GetTime(); 40 | } 41 | -------------------------------------------------------------------------------- /0.11/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM debian:stable-slim 2 | 3 | ARG UID=101 4 | ARG GID=101 5 | 6 | LABEL maintainer.0="João Fonseca (@joaopaulofonseca)" \ 7 | maintainer.1="Pedro Branco (@pedrobranco)" \ 8 | maintainer.2="Rui Marinho (@ruimarinho)" 9 | 10 | RUN groupadd --gid ${GID} bitcoin \ 11 | && useradd --create-home --no-log-init -u ${UID} -g ${GID} bitcoin \ 12 | && apt-get update -y \ 13 | && apt-get install -y curl gnupg gosu \ 14 | && apt-get clean \ 15 | && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* 16 | 17 | ENV BITCOIN_VERSION=0.11.2 18 | ENV BITCOIN_DATA=/home/bitcoin/.bitcoin 19 | ENV PATH=/opt/bitcoin-${BITCOIN_VERSION}/bin:$PATH 20 | 21 | RUN set -ex \ 22 | && for key in \ 23 | 01EA5486DE18A882D4C2684590C8019E36C2E964 \ 24 | ; do \ 25 | gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "$key" || \ 26 | gpg --batch --keyserver pgp.mit.edu --recv-keys "$key" || \ 27 | gpg --batch --keyserver keyserver.pgp.com --recv-keys "$key" || \ 28 | gpg --batch --keyserver ha.pool.sks-keyservers.net --recv-keys "$key" || \ 29 | gpg --batch --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys "$key" ; \ 30 | done \ 31 | && curl -SLO https://bitcoin.org/bin/bitcoin-core-${BITCOIN_VERSION}/SHA256SUMS.asc \ 32 | && curl -SLO https://bitcoin.org/bin/bitcoin-core-${BITCOIN_VERSION}/bitcoin-${BITCOIN_VERSION}-linux64.tar.gz \ 33 | && gpg --verify SHA256SUMS.asc \ 34 | && grep " bitcoin-${BITCOIN_VERSION}-linux64.tar.gz\$" SHA256SUMS.asc | sha256sum -c - \ 35 | && tar -xzf *.tar.gz -C /opt \ 36 | && rm *.tar.gz *.asc 37 | 38 | COPY docker-entrypoint.sh /entrypoint.sh 39 | 40 | VOLUME ["/home/bitcoin/.bitcoin"] 41 | 42 | EXPOSE 8332 8333 18332 18333 18444 43 | 44 | ENTRYPOINT ["/entrypoint.sh"] 45 | 46 | CMD ["bitcoind"] 47 | -------------------------------------------------------------------------------- /0.12/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM debian:stable-slim 2 | 3 | ARG UID=101 4 | ARG GID=101 5 | 6 | LABEL maintainer.0="João Fonseca (@joaopaulofonseca)" \ 7 | maintainer.1="Pedro Branco (@pedrobranco)" \ 8 | maintainer.2="Rui Marinho (@ruimarinho)" 9 | 10 | RUN groupadd --gid ${GID} bitcoin \ 11 | && useradd --create-home --no-log-init -u ${UID} -g ${GID} bitcoin \ 12 | && apt-get update -y \ 13 | && apt-get install -y curl gnupg gosu \ 14 | && apt-get clean \ 15 | && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* 16 | 17 | ENV BITCOIN_VERSION=0.12.1 18 | ENV BITCOIN_DATA=/home/bitcoin/.bitcoin 19 | ENV PATH=/opt/bitcoin-${BITCOIN_VERSION}/bin:$PATH 20 | 21 | RUN set -ex \ 22 | && for key in \ 23 | 01EA5486DE18A882D4C2684590C8019E36C2E964 \ 24 | ; do \ 25 | gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "$key" || \ 26 | gpg --batch --keyserver pgp.mit.edu --recv-keys "$key" || \ 27 | gpg --batch --keyserver keyserver.pgp.com --recv-keys "$key" || \ 28 | gpg --batch --keyserver ha.pool.sks-keyservers.net --recv-keys "$key" || \ 29 | gpg --batch --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys "$key" ; \ 30 | done \ 31 | && curl -SLO https://bitcoin.org/bin/bitcoin-core-${BITCOIN_VERSION}/SHA256SUMS.asc \ 32 | && curl -SLO https://bitcoin.org/bin/bitcoin-core-${BITCOIN_VERSION}/bitcoin-${BITCOIN_VERSION}-linux64.tar.gz \ 33 | && gpg --verify SHA256SUMS.asc \ 34 | && grep " bitcoin-${BITCOIN_VERSION}-linux64.tar.gz\$" SHA256SUMS.asc | sha256sum -c - \ 35 | && tar -xzf *.tar.gz -C /opt \ 36 | && rm *.tar.gz *.asc 37 | 38 | COPY docker-entrypoint.sh /entrypoint.sh 39 | 40 | VOLUME ["/home/bitcoin/.bitcoin"] 41 | 42 | EXPOSE 8332 8333 18332 18333 18444 43 | 44 | ENTRYPOINT ["/entrypoint.sh"] 45 | 46 | RUN bitcoind -version | grep "Bitcoin Core Daemon" 47 | 48 | CMD ["bitcoind"] 49 | -------------------------------------------------------------------------------- /0.13/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM debian:stable-slim 2 | 3 | ARG UID=101 4 | ARG GID=101 5 | 6 | LABEL maintainer.0="João Fonseca (@joaopaulofonseca)" \ 7 | maintainer.1="Pedro Branco (@pedrobranco)" \ 8 | maintainer.2="Rui Marinho (@ruimarinho)" 9 | 10 | RUN groupadd --gid ${GID} bitcoin \ 11 | && useradd --create-home --no-log-init -u ${UID} -g ${GID} bitcoin \ 12 | && apt-get update -y \ 13 | && apt-get install -y curl gnupg gosu \ 14 | && apt-get clean \ 15 | && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* 16 | 17 | ENV BITCOIN_VERSION=0.13.2 18 | ENV BITCOIN_DATA=/home/bitcoin/.bitcoin 19 | ENV PATH=/opt/bitcoin-${BITCOIN_VERSION}/bin:$PATH 20 | 21 | RUN set -ex \ 22 | && for key in \ 23 | 01EA5486DE18A882D4C2684590C8019E36C2E964 \ 24 | ; do \ 25 | gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "$key" || \ 26 | gpg --batch --keyserver pgp.mit.edu --recv-keys "$key" || \ 27 | gpg --batch --keyserver keyserver.pgp.com --recv-keys "$key" || \ 28 | gpg --batch --keyserver ha.pool.sks-keyservers.net --recv-keys "$key" || \ 29 | gpg --batch --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys "$key" ; \ 30 | done \ 31 | && curl -SLO https://bitcoin.org/bin/bitcoin-core-${BITCOIN_VERSION}/SHA256SUMS.asc \ 32 | && curl -SLO https://bitcoin.org/bin/bitcoin-core-${BITCOIN_VERSION}/bitcoin-${BITCOIN_VERSION}-x86_64-linux-gnu.tar.gz \ 33 | && gpg --verify SHA256SUMS.asc \ 34 | && grep " bitcoin-${BITCOIN_VERSION}-x86_64-linux-gnu.tar.gz\$" SHA256SUMS.asc | sha256sum -c - \ 35 | && tar -xzf *.tar.gz -C /opt \ 36 | && rm *.tar.gz *.asc 37 | 38 | COPY docker-entrypoint.sh /entrypoint.sh 39 | 40 | VOLUME ["/home/bitcoin/.bitcoin"] 41 | 42 | EXPOSE 8332 8333 18332 18333 18444 43 | 44 | ENTRYPOINT ["/entrypoint.sh"] 45 | 46 | RUN bitcoind -version | grep "Bitcoin Core Daemon" 47 | 48 | CMD ["bitcoind"] 49 | -------------------------------------------------------------------------------- /0.16/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM debian:stable-slim 2 | 3 | ARG UID=101 4 | ARG GID=101 5 | 6 | LABEL maintainer.0="João Fonseca (@joaopaulofonseca)" \ 7 | maintainer.1="Pedro Branco (@pedrobranco)" \ 8 | maintainer.2="Rui Marinho (@ruimarinho)" 9 | 10 | RUN groupadd --gid ${GID} bitcoin \ 11 | && useradd --create-home --no-log-init -u ${UID} -g ${GID} bitcoin \ 12 | && apt-get update -y \ 13 | && apt-get install -y curl gnupg gosu \ 14 | && apt-get clean \ 15 | && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* 16 | 17 | ENV BITCOIN_VERSION=0.16.3 18 | ENV BITCOIN_DATA=/home/bitcoin/.bitcoin 19 | ENV PATH=/opt/bitcoin-${BITCOIN_VERSION}/bin:$PATH 20 | 21 | RUN set -ex \ 22 | && for key in \ 23 | 01EA5486DE18A882D4C2684590C8019E36C2E964 \ 24 | ; do \ 25 | gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "$key" || \ 26 | gpg --batch --keyserver pgp.mit.edu --recv-keys "$key" || \ 27 | gpg --batch --keyserver keyserver.pgp.com --recv-keys "$key" || \ 28 | gpg --batch --keyserver ha.pool.sks-keyservers.net --recv-keys "$key" || \ 29 | gpg --batch --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys "$key" ; \ 30 | done \ 31 | && curl -SLO https://bitcoin.org/bin/bitcoin-core-${BITCOIN_VERSION}/SHA256SUMS.asc \ 32 | && curl -SLO https://bitcoin.org/bin/bitcoin-core-${BITCOIN_VERSION}/bitcoin-${BITCOIN_VERSION}-x86_64-linux-gnu.tar.gz \ 33 | && gpg --verify SHA256SUMS.asc \ 34 | && grep " bitcoin-${BITCOIN_VERSION}-x86_64-linux-gnu.tar.gz\$" SHA256SUMS.asc | sha256sum -c - \ 35 | && tar -xzf *.tar.gz -C /opt \ 36 | && rm *.tar.gz *.asc 37 | 38 | COPY docker-entrypoint.sh /entrypoint.sh 39 | 40 | VOLUME ["/home/bitcoin/.bitcoin"] 41 | 42 | EXPOSE 8332 8333 18332 18333 18443 18444 43 | 44 | ENTRYPOINT ["/entrypoint.sh"] 45 | 46 | RUN bitcoind -version | grep "Bitcoin Core Daemon" 47 | 48 | CMD ["bitcoind"] 49 | -------------------------------------------------------------------------------- /0.17/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM debian:stable-slim 2 | 3 | ARG UID=101 4 | ARG GID=101 5 | 6 | LABEL maintainer.0="João Fonseca (@joaopaulofonseca)" \ 7 | maintainer.1="Pedro Branco (@pedrobranco)" \ 8 | maintainer.2="Rui Marinho (@ruimarinho)" 9 | 10 | RUN groupadd --gid ${GID} bitcoin \ 11 | && useradd --create-home --no-log-init -u ${UID} -g ${GID} bitcoin \ 12 | && apt-get update -y \ 13 | && apt-get install -y curl gnupg gosu \ 14 | && apt-get clean \ 15 | && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* 16 | 17 | ENV BITCOIN_VERSION=0.17.1 18 | ENV BITCOIN_DATA=/home/bitcoin/.bitcoin 19 | ENV PATH=/opt/bitcoin-${BITCOIN_VERSION}/bin:$PATH 20 | 21 | RUN set -ex \ 22 | && for key in \ 23 | 01EA5486DE18A882D4C2684590C8019E36C2E964 \ 24 | ; do \ 25 | gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "$key" || \ 26 | gpg --batch --keyserver pgp.mit.edu --recv-keys "$key" || \ 27 | gpg --batch --keyserver keyserver.pgp.com --recv-keys "$key" || \ 28 | gpg --batch --keyserver ha.pool.sks-keyservers.net --recv-keys "$key" || \ 29 | gpg --batch --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys "$key" ; \ 30 | done \ 31 | && curl -SLO https://bitcoin.org/bin/bitcoin-core-${BITCOIN_VERSION}/SHA256SUMS.asc \ 32 | && curl -SLO https://bitcoin.org/bin/bitcoin-core-${BITCOIN_VERSION}/bitcoin-${BITCOIN_VERSION}-x86_64-linux-gnu.tar.gz \ 33 | && gpg --verify SHA256SUMS.asc \ 34 | && grep " bitcoin-${BITCOIN_VERSION}-x86_64-linux-gnu.tar.gz\$" SHA256SUMS.asc | sha256sum -c - \ 35 | && tar -xzf *.tar.gz -C /opt \ 36 | && rm *.tar.gz *.asc 37 | 38 | COPY docker-entrypoint.sh /entrypoint.sh 39 | 40 | VOLUME ["/home/bitcoin/.bitcoin"] 41 | 42 | EXPOSE 8332 8333 18332 18333 18443 18444 43 | 44 | ENTRYPOINT ["/entrypoint.sh"] 45 | 46 | RUN bitcoind -version | grep "Bitcoin Core Daemon" 47 | 48 | CMD ["bitcoind"] 49 | -------------------------------------------------------------------------------- /0.18/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM debian:stable-slim 2 | 3 | ARG UID=101 4 | ARG GID=101 5 | 6 | LABEL maintainer.0="João Fonseca (@joaopaulofonseca)" \ 7 | maintainer.1="Pedro Branco (@pedrobranco)" \ 8 | maintainer.2="Rui Marinho (@ruimarinho)" 9 | 10 | RUN groupadd --gid ${GID} bitcoin \ 11 | && useradd --create-home --no-log-init -u ${UID} -g ${GID} bitcoin \ 12 | && apt-get update -y \ 13 | && apt-get install -y curl gnupg gosu \ 14 | && apt-get clean \ 15 | && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* 16 | 17 | ENV BITCOIN_VERSION=0.18.1 18 | ENV BITCOIN_DATA=/home/bitcoin/.bitcoin 19 | ENV PATH=/opt/bitcoin-${BITCOIN_VERSION}/bin:$PATH 20 | 21 | RUN set -ex \ 22 | && for key in \ 23 | 01EA5486DE18A882D4C2684590C8019E36C2E964 \ 24 | ; do \ 25 | gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "$key" || \ 26 | gpg --batch --keyserver pgp.mit.edu --recv-keys "$key" || \ 27 | gpg --batch --keyserver keyserver.pgp.com --recv-keys "$key" || \ 28 | gpg --batch --keyserver ha.pool.sks-keyservers.net --recv-keys "$key" || \ 29 | gpg --batch --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys "$key" ; \ 30 | done \ 31 | && curl -SLO https://bitcoin.org/bin/bitcoin-core-${BITCOIN_VERSION}/SHA256SUMS.asc \ 32 | && curl -SLO https://bitcoin.org/bin/bitcoin-core-${BITCOIN_VERSION}/bitcoin-${BITCOIN_VERSION}-x86_64-linux-gnu.tar.gz \ 33 | && gpg --verify SHA256SUMS.asc \ 34 | && grep " bitcoin-${BITCOIN_VERSION}-x86_64-linux-gnu.tar.gz\$" SHA256SUMS.asc | sha256sum -c - \ 35 | && tar -xzf *.tar.gz -C /opt \ 36 | && rm *.tar.gz *.asc 37 | 38 | COPY docker-entrypoint.sh /entrypoint.sh 39 | 40 | VOLUME ["/home/bitcoin/.bitcoin"] 41 | 42 | EXPOSE 8332 8333 18332 18333 18443 18444 43 | 44 | ENTRYPOINT ["/entrypoint.sh"] 45 | 46 | RUN bitcoind -version | grep "Bitcoin Core Daemon" 47 | 48 | CMD ["bitcoind"] 49 | -------------------------------------------------------------------------------- /0.12/alpine/patches/warnings.patch: -------------------------------------------------------------------------------- 1 | diff --git configure.ac configure.ac 2 | index e2056ee75..679d97506 100644 3 | --- configure.ac 4 | +++ configure.ac 5 | @@ -1,5 +1,6 @@ 6 | dnl require autoconf 2.60 (AS_ECHO/AS_ECHO_N) 7 | AC_PREREQ([2.60]) 8 | +ARFLAGS=cr 9 | define(_CLIENT_VERSION_MAJOR, 0) 10 | define(_CLIENT_VERSION_MINOR, 12) 11 | define(_CLIENT_VERSION_REVISION, 1) 12 | diff --git src/Makefile.am src/Makefile.am 13 | index 52316a9fd..54cfd150b 100644 14 | --- src/Makefile.am 15 | +++ src/Makefile.am 16 | @@ -1,5 +1,5 @@ 17 | DIST_SUBDIRS = secp256k1 univalue 18 | - 19 | +ARFLAGS=cr 20 | AM_LDFLAGS = $(PTHREAD_CFLAGS) $(LIBTOOL_LDFLAGS) $(HARDENED_LDFLAGS) 21 | AM_CXXFLAGS = $(HARDENED_CXXFLAGS) 22 | AM_CPPFLAGS = $(HARDENED_CPPFLAGS) 23 | diff --git src/compat.h src/compat.h 24 | index 1225ea18e..4f5d28472 100644 25 | --- src/compat.h 26 | +++ src/compat.h 27 | @@ -32,7 +32,7 @@ 28 | #include 29 | #include 30 | #else 31 | -#include 32 | +#include 33 | #include 34 | #include 35 | #include 36 | diff --git src/secp256k1/configure.ac src/secp256k1/configure.ac 37 | index 786d8dcfb..109b84b85 100644 38 | --- src/secp256k1/configure.ac 39 | +++ src/secp256k1/configure.ac 40 | @@ -18,6 +18,7 @@ AC_PATH_TOOL(AR, ar) 41 | AC_PATH_TOOL(RANLIB, ranlib) 42 | AC_PATH_TOOL(STRIP, strip) 43 | AX_PROG_CC_FOR_BUILD 44 | +AR_FLAGS=cr 45 | 46 | if test "x$CFLAGS" = "x"; then 47 | CFLAGS="-O3 -g" 48 | diff --git src/univalue/configure.ac src/univalue/configure.ac 49 | index 0515b632b..ae7a15792 100644 50 | --- src/univalue/configure.ac 51 | +++ src/univalue/configure.ac 52 | @@ -21,6 +21,7 @@ dnl make the compilation flags quiet unless V=1 is used 53 | m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) 54 | 55 | AC_PREREQ(2.60) 56 | +AR_FLAGS=cr 57 | AC_CONFIG_SRCDIR([lib/univalue.cpp]) 58 | AC_CONFIG_AUX_DIR([build-aux]) 59 | AC_CONFIG_MACRO_DIR([build-aux/m4]) 60 | -------------------------------------------------------------------------------- /0.13/alpine/patches/warnings.patch: -------------------------------------------------------------------------------- 1 | diff --git configure.ac configure.ac 2 | index d4e775aef..6adc82efa 100644 3 | --- configure.ac 4 | +++ configure.ac 5 | @@ -1,5 +1,6 @@ 6 | dnl require autoconf 2.60 (AS_ECHO/AS_ECHO_N) 7 | AC_PREREQ([2.60]) 8 | +ARFLAGS=cr 9 | define(_CLIENT_VERSION_MAJOR, 0) 10 | define(_CLIENT_VERSION_MINOR, 13) 11 | define(_CLIENT_VERSION_REVISION, 2) 12 | diff --git src/Makefile.am src/Makefile.am 13 | index 1e033de9d..f75ef065d 100644 14 | --- src/Makefile.am 15 | +++ src/Makefile.am 16 | @@ -3,6 +3,7 @@ 17 | # file COPYING or http://www.opensource.org/licenses/mit-license.php. 18 | 19 | DIST_SUBDIRS = secp256k1 univalue 20 | +ARFLAGS=cr 21 | 22 | AM_LDFLAGS = $(PTHREAD_CFLAGS) $(LIBTOOL_LDFLAGS) $(HARDENED_LDFLAGS) 23 | AM_CXXFLAGS = $(HARDENED_CXXFLAGS) 24 | diff --git src/compat.h src/compat.h 25 | index 2578d6d34..32319359b 100644 26 | --- src/compat.h 27 | +++ src/compat.h 28 | @@ -32,7 +32,7 @@ 29 | #include 30 | #include 31 | #else 32 | -#include 33 | +#include 34 | #include 35 | #include 36 | #include 37 | diff --git src/secp256k1/configure.ac src/secp256k1/configure.ac 38 | index ec50ffe3a..f18e34a97 100644 39 | --- src/secp256k1/configure.ac 40 | +++ src/secp256k1/configure.ac 41 | @@ -18,6 +18,7 @@ AC_PATH_TOOL(AR, ar) 42 | AC_PATH_TOOL(RANLIB, ranlib) 43 | AC_PATH_TOOL(STRIP, strip) 44 | AX_PROG_CC_FOR_BUILD 45 | +AR_FLAGS=cr 46 | 47 | if test "x$CFLAGS" = "x"; then 48 | CFLAGS="-O3 -g" 49 | diff --git src/univalue/configure.ac src/univalue/configure.ac 50 | index 93d3ba945..7d79f6896 100644 51 | --- src/univalue/configure.ac 52 | +++ src/univalue/configure.ac 53 | @@ -21,6 +21,7 @@ dnl make the compilation flags quiet unless V=1 is used 54 | m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) 55 | 56 | AC_PREREQ(2.60) 57 | +AR_FLAGS=cr 58 | AC_CONFIG_SRCDIR([lib/univalue.cpp]) 59 | AC_CONFIG_AUX_DIR([build-aux]) 60 | AC_CONFIG_MACRO_DIR([build-aux/m4]) 61 | -------------------------------------------------------------------------------- /0.21/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM debian:bullseye-slim 2 | 3 | ARG UID=101 4 | ARG GID=101 5 | 6 | LABEL maintainer.0="João Fonseca (@joaopaulofonseca)" \ 7 | maintainer.1="Pedro Branco (@pedrobranco)" \ 8 | maintainer.2="Rui Marinho (@ruimarinho)" 9 | 10 | RUN useradd --system --user-group bitcoin \ 11 | && apt-get update -y \ 12 | && apt-get install -y curl gnupg gosu \ 13 | && apt-get clean \ 14 | && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* 15 | 16 | ARG TARGETPLATFORM 17 | ENV BITCOIN_VERSION=0.21.1 18 | ENV BITCOIN_DATA=/home/bitcoin/.bitcoin 19 | ENV PATH=/opt/bitcoin-${BITCOIN_VERSION}/bin:$PATH 20 | 21 | RUN set -ex \ 22 | && if [ "${TARGETPLATFORM}" = "linux/amd64" ]; then export TARGETPLATFORM=x86_64-linux-gnu; fi \ 23 | && if [ "${TARGETPLATFORM}" = "linux/arm64" ]; then export TARGETPLATFORM=aarch64-linux-gnu; fi \ 24 | && if [ "${TARGETPLATFORM}" = "linux/arm/v7" ]; then export TARGETPLATFORM=arm-linux-gnueabihf; fi \ 25 | && for key in \ 26 | 01EA5486DE18A882D4C2684590C8019E36C2E964 \ 27 | ; do \ 28 | gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "$key" || \ 29 | gpg --batch --keyserver pgp.mit.edu --recv-keys "$key" || \ 30 | gpg --batch --keyserver keyserver.pgp.com --recv-keys "$key" || \ 31 | gpg --batch --keyserver ha.pool.sks-keyservers.net --recv-keys "$key" || \ 32 | gpg --batch --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys "$key" ; \ 33 | done \ 34 | && curl -SLO https://bitcoincore.org/bin/bitcoin-core-${BITCOIN_VERSION}/bitcoin-${BITCOIN_VERSION}-${TARGETPLATFORM}.tar.gz \ 35 | && curl -SLO https://bitcoincore.org/bin/bitcoin-core-${BITCOIN_VERSION}/SHA256SUMS.asc \ 36 | && gpg --verify SHA256SUMS.asc \ 37 | && grep " bitcoin-${BITCOIN_VERSION}-${TARGETPLATFORM}.tar.gz" SHA256SUMS.asc | sha256sum -c - \ 38 | && tar -xzf *.tar.gz -C /opt \ 39 | && rm *.tar.gz *.asc \ 40 | && rm -rf /opt/bitcoin-${BITCOIN_VERSION}/bin/bitcoin-qt 41 | 42 | COPY docker-entrypoint.sh /entrypoint.sh 43 | 44 | VOLUME ["/home/bitcoin/.bitcoin"] 45 | 46 | EXPOSE 8332 8333 18332 18333 18443 18444 38333 38332 47 | 48 | 49 | ENTRYPOINT ["/entrypoint.sh"] 50 | 51 | RUN bitcoind -version | grep "Bitcoin Core version v${BITCOIN_VERSION}" 52 | 53 | CMD ["bitcoind"] 54 | -------------------------------------------------------------------------------- /0.19/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM debian:bullseye-slim 2 | 3 | ARG UID=101 4 | ARG GID=101 5 | 6 | LABEL maintainer.0="João Fonseca (@joaopaulofonseca)" \ 7 | maintainer.1="Pedro Branco (@pedrobranco)" \ 8 | maintainer.2="Rui Marinho (@ruimarinho)" 9 | 10 | RUN groupadd --gid ${GID} bitcoin \ 11 | && useradd --create-home --no-log-init -u ${UID} -g ${GID} bitcoin \ 12 | && apt-get update -y \ 13 | && apt-get install -y curl gnupg gosu \ 14 | && apt-get clean \ 15 | && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* 16 | 17 | ARG TARGETPLATFORM 18 | ENV BITCOIN_VERSION=0.19.1 19 | ENV BITCOIN_DATA=/home/bitcoin/.bitcoin 20 | ENV PATH=/opt/bitcoin-${BITCOIN_VERSION}/bin:$PATH 21 | 22 | RUN set -ex \ 23 | && if [ "${TARGETPLATFORM}" = "linux/amd64" ]; then export TARGETPLATFORM=x86_64-linux-gnu; fi \ 24 | && if [ "${TARGETPLATFORM}" = "linux/arm64" ]; then export TARGETPLATFORM=aarch64-linux-gnu; fi \ 25 | && if [ "${TARGETPLATFORM}" = "linux/arm/v7" ]; then export TARGETPLATFORM=arm-linux-gnueabihf; fi \ 26 | && for key in \ 27 | 01EA5486DE18A882D4C2684590C8019E36C2E964 \ 28 | ; do \ 29 | gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "$key" || \ 30 | gpg --batch --keyserver pgp.mit.edu --recv-keys "$key" || \ 31 | gpg --batch --keyserver keyserver.pgp.com --recv-keys "$key" || \ 32 | gpg --batch --keyserver ha.pool.sks-keyservers.net --recv-keys "$key" || \ 33 | gpg --batch --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys "$key" ; \ 34 | done \ 35 | && curl -SLO https://bitcoin.org/bin/bitcoin-core-${BITCOIN_VERSION}/bitcoin-${BITCOIN_VERSION}-${TARGETPLATFORM}.tar.gz \ 36 | && curl -SLO https://bitcoin.org/bin/bitcoin-core-${BITCOIN_VERSION}/SHA256SUMS.asc \ 37 | && gpg --verify SHA256SUMS.asc \ 38 | && grep " bitcoin-${BITCOIN_VERSION}-${TARGETPLATFORM}.tar.gz\$" SHA256SUMS.asc | sha256sum -c - \ 39 | && tar -xzf *.tar.gz -C /opt \ 40 | && rm *.tar.gz *.asc \ 41 | && rm -rf /opt/bitcoin-${BITCOIN_VERSION}/bin/bitcoin-qt 42 | 43 | COPY docker-entrypoint.sh /entrypoint.sh 44 | 45 | VOLUME ["/home/bitcoin/.bitcoin"] 46 | 47 | EXPOSE 8332 8333 18332 18333 18443 18444 48 | 49 | ENTRYPOINT ["/entrypoint.sh"] 50 | 51 | RUN bitcoind -version | grep "Bitcoin Core version v${BITCOIN_VERSION}" 52 | 53 | CMD ["bitcoind"] 54 | -------------------------------------------------------------------------------- /0.20/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM debian:bullseye-slim 2 | 3 | ARG UID=101 4 | ARG GID=101 5 | 6 | LABEL maintainer.0="João Fonseca (@joaopaulofonseca)" \ 7 | maintainer.1="Pedro Branco (@pedrobranco)" \ 8 | maintainer.2="Rui Marinho (@ruimarinho)" 9 | 10 | RUN groupadd --gid ${GID} bitcoin \ 11 | && useradd --create-home --no-log-init -u ${UID} -g ${GID} bitcoin \ 12 | && apt-get update -y \ 13 | && apt-get install -y curl gnupg gosu \ 14 | && apt-get clean \ 15 | && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* 16 | 17 | ARG TARGETPLATFORM 18 | ENV BITCOIN_VERSION=0.20.1 19 | ENV BITCOIN_DATA=/home/bitcoin/.bitcoin 20 | ENV PATH=/opt/bitcoin-${BITCOIN_VERSION}/bin:$PATH 21 | 22 | RUN set -ex \ 23 | && if [ "${TARGETPLATFORM}" = "linux/amd64" ]; then export TARGETPLATFORM=x86_64-linux-gnu; fi \ 24 | && if [ "${TARGETPLATFORM}" = "linux/arm64" ]; then export TARGETPLATFORM=aarch64-linux-gnu; fi \ 25 | && if [ "${TARGETPLATFORM}" = "linux/arm/v7" ]; then export TARGETPLATFORM=arm-linux-gnueabihf; fi \ 26 | && for key in \ 27 | 01EA5486DE18A882D4C2684590C8019E36C2E964 \ 28 | ; do \ 29 | gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "$key" || \ 30 | gpg --batch --keyserver pgp.mit.edu --recv-keys "$key" || \ 31 | gpg --batch --keyserver keyserver.pgp.com --recv-keys "$key" || \ 32 | gpg --batch --keyserver ha.pool.sks-keyservers.net --recv-keys "$key" || \ 33 | gpg --batch --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys "$key" ; \ 34 | done \ 35 | && curl -SLO https://bitcoin.org/bin/bitcoin-core-${BITCOIN_VERSION}/bitcoin-${BITCOIN_VERSION}-${TARGETPLATFORM}.tar.gz \ 36 | && curl -SLO https://bitcoin.org/bin/bitcoin-core-${BITCOIN_VERSION}/SHA256SUMS.asc \ 37 | && gpg --verify SHA256SUMS.asc \ 38 | && grep " bitcoin-${BITCOIN_VERSION}-${TARGETPLATFORM}.tar.gz" SHA256SUMS.asc | sha256sum -c - \ 39 | && tar -xzf *.tar.gz -C /opt \ 40 | && rm *.tar.gz *.asc \ 41 | && rm -rf /opt/bitcoin-${BITCOIN_VERSION}/bin/bitcoin-qt 42 | 43 | COPY docker-entrypoint.sh /entrypoint.sh 44 | 45 | VOLUME ["/home/bitcoin/.bitcoin"] 46 | 47 | EXPOSE 8332 8333 18332 18333 18443 18444 48 | 49 | ENTRYPOINT ["/entrypoint.sh"] 50 | 51 | RUN bitcoind -version | grep "Bitcoin Core version v${BITCOIN_VERSION}" 52 | 53 | CMD ["bitcoind"] 54 | -------------------------------------------------------------------------------- /0.13/alpine/patches/boost.patch: -------------------------------------------------------------------------------- 1 | diff --git src/miner.h src/miner.h 2 | index 11753f5e4..5979b6d18 100644 3 | --- src/miner.h 4 | +++ src/miner.h 5 | @@ -73,7 +73,7 @@ struct modifiedentry_iter { 6 | // except operating on CTxMemPoolModifiedEntry. 7 | // TODO: refactor to avoid duplication of this logic. 8 | struct CompareModifiedEntry { 9 | - bool operator()(const CTxMemPoolModifiedEntry &a, const CTxMemPoolModifiedEntry &b) 10 | + bool operator()(const CTxMemPoolModifiedEntry &a, const CTxMemPoolModifiedEntry &b) const 11 | { 12 | double f1 = (double)a.nModFeesWithAncestors * b.nSizeWithAncestors; 13 | double f2 = (double)b.nModFeesWithAncestors * a.nSizeWithAncestors; 14 | diff --git src/txmempool.h src/txmempool.h 15 | index 8129a0537..9bdadce25 100644 16 | --- src/txmempool.h 17 | +++ src/txmempool.h 18 | @@ -224,7 +224,7 @@ struct mempoolentry_txid 19 | class CompareTxMemPoolEntryByDescendantScore 20 | { 21 | public: 22 | - bool operator()(const CTxMemPoolEntry& a, const CTxMemPoolEntry& b) 23 | + bool operator()(const CTxMemPoolEntry& a, const CTxMemPoolEntry& b) const 24 | { 25 | bool fUseADescendants = UseDescendantScore(a); 26 | bool fUseBDescendants = UseDescendantScore(b); 27 | @@ -246,7 +246,7 @@ public: 28 | } 29 | 30 | // Calculate which score to use for an entry (avoiding division). 31 | - bool UseDescendantScore(const CTxMemPoolEntry &a) 32 | + bool UseDescendantScore(const CTxMemPoolEntry &a) const 33 | { 34 | double f1 = (double)a.GetModifiedFee() * a.GetSizeWithDescendants(); 35 | double f2 = (double)a.GetModFeesWithDescendants() * a.GetTxSize(); 36 | @@ -261,7 +261,7 @@ public: 37 | class CompareTxMemPoolEntryByScore 38 | { 39 | public: 40 | - bool operator()(const CTxMemPoolEntry& a, const CTxMemPoolEntry& b) 41 | + bool operator()(const CTxMemPoolEntry& a, const CTxMemPoolEntry& b) const 42 | { 43 | double f1 = (double)a.GetModifiedFee() * b.GetTxSize(); 44 | double f2 = (double)b.GetModifiedFee() * a.GetTxSize(); 45 | @@ -275,7 +275,7 @@ public: 46 | class CompareTxMemPoolEntryByEntryTime 47 | { 48 | public: 49 | - bool operator()(const CTxMemPoolEntry& a, const CTxMemPoolEntry& b) 50 | + bool operator()(const CTxMemPoolEntry& a, const CTxMemPoolEntry& b) const 51 | { 52 | return a.GetTime() < b.GetTime(); 53 | } 54 | @@ -284,7 +284,7 @@ public: 55 | class CompareTxMemPoolEntryByAncestorFee 56 | { 57 | public: 58 | - bool operator()(const CTxMemPoolEntry& a, const CTxMemPoolEntry& b) 59 | + bool operator()(const CTxMemPoolEntry& a, const CTxMemPoolEntry& b) const 60 | { 61 | double aFees = a.GetModFeesWithAncestors(); 62 | double aSize = a.GetSizeWithAncestors(); 63 | -------------------------------------------------------------------------------- /24/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM debian:bullseye-slim 2 | 3 | ARG UID=101 4 | ARG GID=101 5 | 6 | LABEL maintainer.0="João Fonseca (@joaopaulofonseca)" \ 7 | maintainer.1="Pedro Branco (@pedrobranco)" \ 8 | maintainer.2="Rui Marinho (@ruimarinho)" 9 | 10 | RUN groupadd --gid ${GID} bitcoin \ 11 | && useradd --create-home --no-log-init -u ${UID} -g ${GID} bitcoin \ 12 | && apt-get update -y \ 13 | && apt-get install -y curl gnupg gosu \ 14 | && apt-get clean \ 15 | && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* 16 | 17 | ARG TARGETPLATFORM 18 | ENV BITCOIN_VERSION=24.0.1 19 | ENV BITCOIN_DATA=/home/bitcoin/.bitcoin 20 | ENV PATH=/opt/bitcoin-${BITCOIN_VERSION}/bin:$PATH 21 | 22 | RUN set -ex \ 23 | && if [ "${TARGETPLATFORM}" = "linux/amd64" ]; then export TARGETPLATFORM=x86_64-linux-gnu; fi \ 24 | && if [ "${TARGETPLATFORM}" = "linux/arm64" ]; then export TARGETPLATFORM=aarch64-linux-gnu; fi \ 25 | && if [ "${TARGETPLATFORM}" = "linux/arm/v7" ]; then export TARGETPLATFORM=arm-linux-gnueabihf; fi \ 26 | && for key in \ 27 | 152812300785C96444D3334D17565732E08E5E41 \ 28 | 0AD83877C1F0CD1EE9BD660AD7CC770B81FD22A8 \ 29 | 590B7292695AFFA5B672CBB2E13FC145CD3F4304 \ 30 | CFB16E21C950F67FA95E558F2EEB9F5CC09526C1 \ 31 | F4FC70F07310028424EFC20A8E4256593F177720 \ 32 | D1DBF2C4B96F2DEBF4C16654410108112E7EA81F \ 33 | 287AE4CA1187C68C08B49CB2D11BD4F33F1DB499 \ 34 | 9DEAE0DC7063249FB05474681E4AED62986CD25D \ 35 | 3EB0DEE6004A13BE5A0CC758BF2978B068054311 \ 36 | ED9BDF7AD6A55E232E84524257FF9BDBCC301009 \ 37 | 28E72909F1717FE9607754F8A7BEB2621678D37D \ 38 | 79D00BAC68B56D422F945A8F8E3A8F3247DBCBBF \ 39 | ; do \ 40 | gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "$key" || \ 41 | gpg --batch --keyserver keys.openpgp.org --recv-keys "$key" || \ 42 | gpg --batch --keyserver pgp.mit.edu --recv-keys "$key" || \ 43 | gpg --batch --keyserver keyserver.pgp.com --recv-keys "$key" || \ 44 | gpg --batch --keyserver ha.pool.sks-keyservers.net --recv-keys "$key" || \ 45 | gpg --batch --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys "$key" ; \ 46 | done \ 47 | && curl -SLO https://bitcoincore.org/bin/bitcoin-core-${BITCOIN_VERSION}/bitcoin-${BITCOIN_VERSION}-${TARGETPLATFORM}.tar.gz \ 48 | && curl -SLO https://bitcoincore.org/bin/bitcoin-core-${BITCOIN_VERSION}/SHA256SUMS \ 49 | && curl -SLO https://bitcoincore.org/bin/bitcoin-core-${BITCOIN_VERSION}/SHA256SUMS.asc \ 50 | && gpg --verify SHA256SUMS.asc SHA256SUMS \ 51 | && grep " bitcoin-${BITCOIN_VERSION}-${TARGETPLATFORM}.tar.gz" SHA256SUMS | sha256sum -c - \ 52 | && tar -xzf *.tar.gz -C /opt \ 53 | && rm *.tar.gz *.asc \ 54 | && rm -rf /opt/bitcoin-${BITCOIN_VERSION}/bin/bitcoin-qt 55 | 56 | COPY docker-entrypoint.sh /entrypoint.sh 57 | 58 | VOLUME ["/home/bitcoin/.bitcoin"] 59 | 60 | EXPOSE 8332 8333 18332 18333 18443 18444 38333 38332 61 | 62 | ENTRYPOINT ["/entrypoint.sh"] 63 | 64 | RUN bitcoind -version | grep "Bitcoin Core version v${BITCOIN_VERSION}" 65 | 66 | CMD ["bitcoind"] 67 | -------------------------------------------------------------------------------- /25/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM debian:bullseye-slim 2 | 3 | ARG UID=101 4 | ARG GID=101 5 | 6 | LABEL maintainer.0="João Fonseca (@joaopaulofonseca)" \ 7 | maintainer.1="Pedro Branco (@pedrobranco)" \ 8 | maintainer.2="Rui Marinho (@ruimarinho)" 9 | 10 | RUN groupadd --gid ${GID} bitcoin \ 11 | && useradd --create-home --no-log-init -u ${UID} -g ${GID} bitcoin \ 12 | && apt-get update -y \ 13 | && apt-get install -y curl gnupg gosu \ 14 | && apt-get clean \ 15 | && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* 16 | 17 | ARG TARGETPLATFORM 18 | ENV BITCOIN_VERSION=25.0 19 | ENV BITCOIN_DATA=/home/bitcoin/.bitcoin 20 | ENV PATH=/opt/bitcoin-${BITCOIN_VERSION}/bin:$PATH 21 | 22 | RUN set -ex \ 23 | && if [ "${TARGETPLATFORM}" = "linux/amd64" ]; then export TARGETPLATFORM=x86_64-linux-gnu; fi \ 24 | && if [ "${TARGETPLATFORM}" = "linux/arm64" ]; then export TARGETPLATFORM=aarch64-linux-gnu; fi \ 25 | && if [ "${TARGETPLATFORM}" = "linux/arm/v7" ]; then export TARGETPLATFORM=arm-linux-gnueabihf; fi \ 26 | && for key in \ 27 | 101598DC823C1B5F9A6624ABA5E0907A0380E6C3 \ 28 | F2CFC4ABD0B99D837EEBB7D09B79B45691DB4173 \ 29 | 152812300785C96444D3334D17565732E08E5E41 \ 30 | 0AD83877C1F0CD1EE9BD660AD7CC770B81FD22A8 \ 31 | C060A6635913D98A3587D7DB1C2491FFEB0EF770 \ 32 | CFB16E21C950F67FA95E558F2EEB9F5CC09526C1 \ 33 | F19F5FF2B0589EC341220045BA03F4DBE0C63FB4 \ 34 | F4FC70F07310028424EFC20A8E4256593F177720 \ 35 | D1DBF2C4B96F2DEBF4C16654410108112E7EA81F \ 36 | 287AE4CA1187C68C08B49CB2D11BD4F33F1DB499 \ 37 | 9DEAE0DC7063249FB05474681E4AED62986CD25D \ 38 | 6A8F9C266528E25AEB1D7731C2371D91CB716EA7 \ 39 | 28E72909F1717FE9607754F8A7BEB2621678D37D \ 40 | ; do \ 41 | gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "$key" || \ 42 | gpg --batch --keyserver keys.openpgp.org --recv-keys "$key" || \ 43 | gpg --batch --keyserver pgp.mit.edu --recv-keys "$key" || \ 44 | gpg --batch --keyserver keyserver.pgp.com --recv-keys "$key" || \ 45 | gpg --batch --keyserver ha.pool.sks-keyservers.net --recv-keys "$key" || \ 46 | gpg --batch --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys "$key" ; \ 47 | done \ 48 | && curl -SLO https://bitcoincore.org/bin/bitcoin-core-${BITCOIN_VERSION}/bitcoin-${BITCOIN_VERSION}-${TARGETPLATFORM}.tar.gz \ 49 | && curl -SLO https://bitcoincore.org/bin/bitcoin-core-${BITCOIN_VERSION}/SHA256SUMS \ 50 | && curl -SLO https://bitcoincore.org/bin/bitcoin-core-${BITCOIN_VERSION}/SHA256SUMS.asc \ 51 | && gpg --verify SHA256SUMS.asc SHA256SUMS \ 52 | && grep " bitcoin-${BITCOIN_VERSION}-${TARGETPLATFORM}.tar.gz" SHA256SUMS | sha256sum -c - \ 53 | && tar -xzf *.tar.gz -C /opt \ 54 | && rm *.tar.gz *.asc \ 55 | && rm -rf /opt/bitcoin-${BITCOIN_VERSION}/bin/bitcoin-qt 56 | 57 | COPY docker-entrypoint.sh /entrypoint.sh 58 | 59 | VOLUME ["/home/bitcoin/.bitcoin"] 60 | 61 | EXPOSE 8332 8333 18332 18333 18443 18444 38333 38332 62 | 63 | ENTRYPOINT ["/entrypoint.sh"] 64 | 65 | RUN bitcoind -version | grep "Bitcoin Core version v${BITCOIN_VERSION}" 66 | 67 | CMD ["bitcoind"] 68 | -------------------------------------------------------------------------------- /28/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM debian:bookworm-slim 2 | 3 | ARG UID=101 4 | ARG GID=101 5 | 6 | LABEL maintainer.0="João Fonseca (@joaopaulofonseca)" \ 7 | maintainer.1="Pedro Branco (@pedrobranco)" \ 8 | maintainer.2="Rui Marinho (@ruimarinho)" 9 | 10 | RUN groupadd --gid ${GID} bitcoin \ 11 | && useradd --create-home --no-log-init -u ${UID} -g ${GID} bitcoin \ 12 | && apt-get update -y \ 13 | && apt-get install -y curl gnupg gosu \ 14 | && apt-get clean \ 15 | && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* 16 | 17 | ARG TARGETPLATFORM 18 | ENV BITCOIN_VERSION=28.0 19 | ENV BITCOIN_DATA=/home/bitcoin/.bitcoin 20 | ENV PATH=/opt/bitcoin-${BITCOIN_VERSION}/bin:$PATH 21 | 22 | RUN set -ex \ 23 | && if [ "${TARGETPLATFORM}" = "linux/amd64" ]; then export TARGETPLATFORM=x86_64-linux-gnu; fi \ 24 | && if [ "${TARGETPLATFORM}" = "linux/arm64" ]; then export TARGETPLATFORM=aarch64-linux-gnu; fi \ 25 | && if [ "${TARGETPLATFORM}" = "linux/arm/v7" ]; then export TARGETPLATFORM=arm-linux-gnueabihf; fi \ 26 | && for key in \ 27 | 101598DC823C1B5F9A6624ABA5E0907A0380E6C3 \ 28 | 6A8F9C266528E25AEB1D7731C2371D91CB716EA7 \ 29 | 2840EAABF4BC9F0FFD716AFAFBAFCC46DE2D3FE2 \ 30 | E86AE73439625BBEE306AAE6B66D427F873CB1A3 \ 31 | A0083660F235A27000CD3C81CE6EC49945C17EA6 \ 32 | F19F5FF2B0589EC341220045BA03F4DBE0C63FB4 \ 33 | 637DB1E23370F84AFF88CCE03152347D07DA627C \ 34 | ED9BDF7AD6A55E232E84524257FF9BDBCC301009 \ 35 | CFB16E21C950F67FA95E558F2EEB9F5CC09526C1 \ 36 | 152812300785C96444D3334D17565732E08E5E41 \ 37 | C388F6961FB972A95678E327F62711DBDCA8AE56 \ 38 | 9DEAE0DC7063249FB05474681E4AED62986CD25D \ 39 | D1DBF2C4B96F2DEBF4C16654410108112E7EA81F \ 40 | ; do \ 41 | gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "$key" || \ 42 | gpg --batch --keyserver keys.openpgp.org --recv-keys "$key" || \ 43 | gpg --batch --keyserver pgp.mit.edu --recv-keys "$key" || \ 44 | gpg --batch --keyserver keyserver.pgp.com --recv-keys "$key" || \ 45 | gpg --batch --keyserver ha.pool.sks-keyservers.net --recv-keys "$key" || \ 46 | gpg --batch --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys "$key" ; \ 47 | done \ 48 | && curl -SLO https://bitcoincore.org/bin/bitcoin-core-${BITCOIN_VERSION}/bitcoin-${BITCOIN_VERSION}-${TARGETPLATFORM}.tar.gz \ 49 | && curl -SLO https://bitcoincore.org/bin/bitcoin-core-${BITCOIN_VERSION}/SHA256SUMS \ 50 | && curl -SLO https://bitcoincore.org/bin/bitcoin-core-${BITCOIN_VERSION}/SHA256SUMS.asc \ 51 | && gpg --verify SHA256SUMS.asc SHA256SUMS \ 52 | && grep " bitcoin-${BITCOIN_VERSION}-${TARGETPLATFORM}.tar.gz" SHA256SUMS | sha256sum -c - \ 53 | && tar -xzf *.tar.gz -C /opt \ 54 | && rm *.tar.gz *.asc \ 55 | && rm -rf /opt/bitcoin-${BITCOIN_VERSION}/bin/bitcoin-qt 56 | 57 | COPY docker-entrypoint.sh /entrypoint.sh 58 | 59 | VOLUME ["/home/bitcoin/.bitcoin"] 60 | 61 | EXPOSE 8332 8333 18332 18333 18443 18444 38333 38332 62 | 63 | ENTRYPOINT ["/entrypoint.sh"] 64 | 65 | RUN bitcoind -version | grep "Bitcoin Core version v${BITCOIN_VERSION}" 66 | 67 | CMD ["bitcoind"] 68 | -------------------------------------------------------------------------------- /22/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM debian:bullseye-slim 2 | 3 | ARG UID=101 4 | ARG GID=101 5 | 6 | LABEL maintainer.0="João Fonseca (@joaopaulofonseca)" \ 7 | maintainer.1="Pedro Branco (@pedrobranco)" \ 8 | maintainer.2="Rui Marinho (@ruimarinho)" 9 | 10 | RUN groupadd --gid ${GID} bitcoin \ 11 | && useradd --create-home --no-log-init -u ${UID} -g ${GID} bitcoin \ 12 | && apt-get update -y \ 13 | && apt-get install -y curl gnupg gosu \ 14 | && apt-get clean \ 15 | && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* 16 | 17 | ARG TARGETPLATFORM 18 | ENV BITCOIN_VERSION=22.0 19 | ENV BITCOIN_DATA=/home/bitcoin/.bitcoin 20 | ENV PATH=/opt/bitcoin-${BITCOIN_VERSION}/bin:$PATH 21 | 22 | RUN set -ex \ 23 | && if [ "${TARGETPLATFORM}" = "linux/amd64" ]; then export TARGETPLATFORM=x86_64-linux-gnu; fi \ 24 | && if [ "${TARGETPLATFORM}" = "linux/arm64" ]; then export TARGETPLATFORM=aarch64-linux-gnu; fi \ 25 | && if [ "${TARGETPLATFORM}" = "linux/arm/v7" ]; then export TARGETPLATFORM=arm-linux-gnueabihf; fi \ 26 | && for key in \ 27 | 0CCBAAFD76A2ECE2CCD3141DE2FFD5B1D88CA97D \ 28 | 152812300785C96444D3334D17565732E08E5E41 \ 29 | 0AD83877C1F0CD1EE9BD660AD7CC770B81FD22A8 \ 30 | 590B7292695AFFA5B672CBB2E13FC145CD3F4304 \ 31 | 28F5900B1BB5D1A4B6B6D1A9ED357015286A333D \ 32 | 637DB1E23370F84AFF88CCE03152347D07DA627C \ 33 | CFB16E21C950F67FA95E558F2EEB9F5CC09526C1 \ 34 | 6E01EEC9656903B0542B8F1003DB6322267C373B \ 35 | D1DBF2C4B96F2DEBF4C16654410108112E7EA81F \ 36 | 82921A4B88FD454B7EB8CE3C796C4109063D4EAF \ 37 | 9DEAE0DC7063249FB05474681E4AED62986CD25D \ 38 | 9D3CC86A72F8494342EA5FD10A41BDC3F4FAFF1C \ 39 | 74E2DEF5D77260B98BC19438099BAD163C70FBFA \ 40 | ; do \ 41 | gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "$key" || \ 42 | gpg --batch --keyserver keys.openpgp.org --recv-keys "$key" || \ 43 | gpg --batch --keyserver pgp.mit.edu --recv-keys "$key" || \ 44 | gpg --batch --keyserver keyserver.pgp.com --recv-keys "$key" || \ 45 | gpg --batch --keyserver ha.pool.sks-keyservers.net --recv-keys "$key" || \ 46 | gpg --batch --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys "$key" ; \ 47 | done \ 48 | && curl -SLO https://bitcoincore.org/bin/bitcoin-core-${BITCOIN_VERSION}/bitcoin-${BITCOIN_VERSION}-${TARGETPLATFORM}.tar.gz \ 49 | && curl -SLO https://bitcoincore.org/bin/bitcoin-core-${BITCOIN_VERSION}/SHA256SUMS \ 50 | && curl -SLO https://bitcoincore.org/bin/bitcoin-core-${BITCOIN_VERSION}/SHA256SUMS.asc \ 51 | && gpg --verify SHA256SUMS.asc SHA256SUMS \ 52 | && grep " bitcoin-${BITCOIN_VERSION}-${TARGETPLATFORM}.tar.gz" SHA256SUMS | sha256sum -c - \ 53 | && tar -xzf *.tar.gz -C /opt \ 54 | && rm *.tar.gz *.asc \ 55 | && rm -rf /opt/bitcoin-${BITCOIN_VERSION}/bin/bitcoin-qt 56 | 57 | COPY docker-entrypoint.sh /entrypoint.sh 58 | 59 | VOLUME ["/home/bitcoin/.bitcoin"] 60 | 61 | EXPOSE 8332 8333 18332 18333 18443 18444 38333 38332 62 | 63 | ENTRYPOINT ["/entrypoint.sh"] 64 | 65 | RUN bitcoind -version | grep "Bitcoin Core version v${BITCOIN_VERSION}" 66 | 67 | CMD ["bitcoind"] 68 | -------------------------------------------------------------------------------- /26/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM debian:bookworm-slim 2 | 3 | ARG UID=101 4 | ARG GID=101 5 | 6 | LABEL maintainer.0="João Fonseca (@joaopaulofonseca)" \ 7 | maintainer.1="Pedro Branco (@pedrobranco)" \ 8 | maintainer.2="Rui Marinho (@ruimarinho)" 9 | 10 | RUN groupadd --gid ${GID} bitcoin \ 11 | && useradd --create-home --no-log-init -u ${UID} -g ${GID} bitcoin \ 12 | && apt-get update -y \ 13 | && apt-get install -y curl gnupg gosu \ 14 | && apt-get clean \ 15 | && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* 16 | 17 | ARG TARGETPLATFORM 18 | ENV BITCOIN_VERSION=26.0 19 | ENV BITCOIN_DATA=/home/bitcoin/.bitcoin 20 | ENV PATH=/opt/bitcoin-${BITCOIN_VERSION}/bin:$PATH 21 | 22 | RUN set -ex \ 23 | && if [ "${TARGETPLATFORM}" = "linux/amd64" ]; then export TARGETPLATFORM=x86_64-linux-gnu; fi \ 24 | && if [ "${TARGETPLATFORM}" = "linux/arm64" ]; then export TARGETPLATFORM=aarch64-linux-gnu; fi \ 25 | && if [ "${TARGETPLATFORM}" = "linux/arm/v7" ]; then export TARGETPLATFORM=arm-linux-gnueabihf; fi \ 26 | && for key in \ 27 | 101598DC823C1B5F9A6624ABA5E0907A0380E6C3 \ 28 | F2CFC4ABD0B99D837EEBB7D09B79B45691DB4173 \ 29 | 152812300785C96444D3334D17565732E08E5E41 \ 30 | 0AD83877C1F0CD1EE9BD660AD7CC770B81FD22A8 \ 31 | C060A6635913D98A3587D7DB1C2491FFEB0EF770 \ 32 | CFB16E21C950F67FA95E558F2EEB9F5CC09526C1 \ 33 | F19F5FF2B0589EC341220045BA03F4DBE0C63FB4 \ 34 | F4FC70F07310028424EFC20A8E4256593F177720 \ 35 | D1DBF2C4B96F2DEBF4C16654410108112E7EA81F \ 36 | 287AE4CA1187C68C08B49CB2D11BD4F33F1DB499 \ 37 | 9DEAE0DC7063249FB05474681E4AED62986CD25D \ 38 | 6A8F9C266528E25AEB1D7731C2371D91CB716EA7 \ 39 | 28E72909F1717FE9607754F8A7BEB2621678D37D \ 40 | 616516B8EB6ED02882FC4A7A8ADCB558C4F33D65 \ 41 | ED9BDF7AD6A55E232E84524257FF9BDBCC301009 \ 42 | ; do \ 43 | gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "$key" || \ 44 | gpg --batch --keyserver keys.openpgp.org --recv-keys "$key" || \ 45 | gpg --batch --keyserver pgp.mit.edu --recv-keys "$key" || \ 46 | gpg --batch --keyserver keyserver.pgp.com --recv-keys "$key" || \ 47 | gpg --batch --keyserver ha.pool.sks-keyservers.net --recv-keys "$key" || \ 48 | gpg --batch --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys "$key" ; \ 49 | done \ 50 | && curl -SLO https://bitcoincore.org/bin/bitcoin-core-${BITCOIN_VERSION}/bitcoin-${BITCOIN_VERSION}-${TARGETPLATFORM}.tar.gz \ 51 | && curl -SLO https://bitcoincore.org/bin/bitcoin-core-${BITCOIN_VERSION}/SHA256SUMS \ 52 | && curl -SLO https://bitcoincore.org/bin/bitcoin-core-${BITCOIN_VERSION}/SHA256SUMS.asc \ 53 | && gpg --verify SHA256SUMS.asc SHA256SUMS \ 54 | && grep " bitcoin-${BITCOIN_VERSION}-${TARGETPLATFORM}.tar.gz" SHA256SUMS | sha256sum -c - \ 55 | && tar -xzf *.tar.gz -C /opt \ 56 | && rm *.tar.gz *.asc \ 57 | && rm -rf /opt/bitcoin-${BITCOIN_VERSION}/bin/bitcoin-qt 58 | 59 | COPY docker-entrypoint.sh /entrypoint.sh 60 | 61 | VOLUME ["/home/bitcoin/.bitcoin"] 62 | 63 | EXPOSE 8332 8333 18332 18333 18443 18444 38333 38332 64 | 65 | ENTRYPOINT ["/entrypoint.sh"] 66 | 67 | RUN bitcoind -version | grep "Bitcoin Core version v${BITCOIN_VERSION}" 68 | 69 | CMD ["bitcoind"] 70 | -------------------------------------------------------------------------------- /27/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM debian:bookworm-slim 2 | 3 | ARG UID=101 4 | ARG GID=101 5 | 6 | LABEL maintainer.0="João Fonseca (@joaopaulofonseca)" \ 7 | maintainer.1="Pedro Branco (@pedrobranco)" \ 8 | maintainer.2="Rui Marinho (@ruimarinho)" 9 | 10 | RUN groupadd --gid ${GID} bitcoin \ 11 | && useradd --create-home --no-log-init -u ${UID} -g ${GID} bitcoin \ 12 | && apt-get update -y \ 13 | && apt-get install -y curl gnupg gosu \ 14 | && apt-get clean \ 15 | && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* 16 | 17 | ARG TARGETPLATFORM 18 | ENV BITCOIN_VERSION=27.0 19 | ENV BITCOIN_DATA=/home/bitcoin/.bitcoin 20 | ENV PATH=/opt/bitcoin-${BITCOIN_VERSION}/bin:$PATH 21 | 22 | RUN set -ex \ 23 | && if [ "${TARGETPLATFORM}" = "linux/amd64" ]; then export TARGETPLATFORM=x86_64-linux-gnu; fi \ 24 | && if [ "${TARGETPLATFORM}" = "linux/arm64" ]; then export TARGETPLATFORM=aarch64-linux-gnu; fi \ 25 | && if [ "${TARGETPLATFORM}" = "linux/arm/v7" ]; then export TARGETPLATFORM=arm-linux-gnueabihf; fi \ 26 | && for key in \ 27 | 101598DC823C1B5F9A6624ABA5E0907A0380E6C3 \ 28 | F2CFC4ABD0B99D837EEBB7D09B79B45691DB4173 \ 29 | 152812300785C96444D3334D17565732E08E5E41 \ 30 | 0AD83877C1F0CD1EE9BD660AD7CC770B81FD22A8 \ 31 | C060A6635913D98A3587D7DB1C2491FFEB0EF770 \ 32 | CFB16E21C950F67FA95E558F2EEB9F5CC09526C1 \ 33 | F19F5FF2B0589EC341220045BA03F4DBE0C63FB4 \ 34 | F4FC70F07310028424EFC20A8E4256593F177720 \ 35 | D1DBF2C4B96F2DEBF4C16654410108112E7EA81F \ 36 | 287AE4CA1187C68C08B49CB2D11BD4F33F1DB499 \ 37 | 9DEAE0DC7063249FB05474681E4AED62986CD25D \ 38 | 6A8F9C266528E25AEB1D7731C2371D91CB716EA7 \ 39 | 28E72909F1717FE9607754F8A7BEB2621678D37D \ 40 | 616516B8EB6ED02882FC4A7A8ADCB558C4F33D65 \ 41 | ED9BDF7AD6A55E232E84524257FF9BDBCC301009 \ 42 | C388F6961FB972A95678E327F62711DBDCA8AE56 \ 43 | 637DB1E23370F84AFF88CCE03152347D07DA627C \ 44 | E86AE73439625BBEE306AAE6B66D427F873CB1A3 \ 45 | E61773CD6E01040E2F1BD78CE7E2984B6289C93A \ 46 | ; do \ 47 | gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "$key" || \ 48 | gpg --batch --keyserver keys.openpgp.org --recv-keys "$key" || \ 49 | gpg --batch --keyserver pgp.mit.edu --recv-keys "$key" || \ 50 | gpg --batch --keyserver keyserver.pgp.com --recv-keys "$key" || \ 51 | gpg --batch --keyserver ha.pool.sks-keyservers.net --recv-keys "$key" || \ 52 | gpg --batch --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys "$key" ; \ 53 | done \ 54 | && curl -SLO https://bitcoincore.org/bin/bitcoin-core-${BITCOIN_VERSION}/bitcoin-${BITCOIN_VERSION}-${TARGETPLATFORM}.tar.gz \ 55 | && curl -SLO https://bitcoincore.org/bin/bitcoin-core-${BITCOIN_VERSION}/SHA256SUMS \ 56 | && curl -SLO https://bitcoincore.org/bin/bitcoin-core-${BITCOIN_VERSION}/SHA256SUMS.asc \ 57 | && gpg --verify SHA256SUMS.asc SHA256SUMS \ 58 | && grep " bitcoin-${BITCOIN_VERSION}-${TARGETPLATFORM}.tar.gz" SHA256SUMS | sha256sum -c - \ 59 | && tar -xzf *.tar.gz -C /opt \ 60 | && rm *.tar.gz *.asc \ 61 | && rm -rf /opt/bitcoin-${BITCOIN_VERSION}/bin/bitcoin-qt 62 | 63 | COPY docker-entrypoint.sh /entrypoint.sh 64 | 65 | VOLUME ["/home/bitcoin/.bitcoin"] 66 | 67 | EXPOSE 8332 8333 18332 18333 18443 18444 38333 38332 68 | 69 | ENTRYPOINT ["/entrypoint.sh"] 70 | 71 | RUN bitcoind -version | grep "Bitcoin Core version v${BITCOIN_VERSION}" 72 | 73 | CMD ["bitcoind"] 74 | -------------------------------------------------------------------------------- /29/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM debian:bookworm-slim 2 | 3 | ARG UID=101 4 | ARG GID=101 5 | 6 | LABEL maintainer.0="João Fonseca (@joaopaulofonseca)" \ 7 | maintainer.1="Pedro Branco (@pedrobranco)" \ 8 | maintainer.2="Rui Marinho (@ruimarinho)" 9 | 10 | RUN groupadd --gid ${GID} bitcoin \ 11 | && useradd --create-home --no-log-init -u ${UID} -g ${GID} bitcoin \ 12 | && apt-get update -y \ 13 | && apt-get install -y curl gnupg gosu \ 14 | && apt-get clean \ 15 | && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* 16 | 17 | # Special variables just for release candidates, both should be empty for stable 18 | # releases. 19 | ARG RC 20 | ARG RC_DIR 21 | 22 | ARG TARGETPLATFORM 23 | ENV BITCOIN_VERSION=29.0 24 | ENV BITCOIN_DATA=/home/bitcoin/.bitcoin 25 | ENV PATH=/opt/bitcoin-${BITCOIN_VERSION}${RC}/bin:$PATH 26 | 27 | RUN set -ex \ 28 | && if [ "${TARGETPLATFORM}" = "linux/amd64" ]; then export TARGETPLATFORM=x86_64-linux-gnu; fi \ 29 | && if [ "${TARGETPLATFORM}" = "linux/arm64" ]; then export TARGETPLATFORM=aarch64-linux-gnu; fi \ 30 | && if [ "${TARGETPLATFORM}" = "linux/arm/v7" ]; then export TARGETPLATFORM=arm-linux-gnueabihf; fi \ 31 | && for key in \ 32 | 101598DC823C1B5F9A6624ABA5E0907A0380E6C3 \ 33 | 6A8F9C266528E25AEB1D7731C2371D91CB716EA7 \ 34 | 2840EAABF4BC9F0FFD716AFAFBAFCC46DE2D3FE2 \ 35 | E86AE73439625BBEE306AAE6B66D427F873CB1A3 \ 36 | A0083660F235A27000CD3C81CE6EC49945C17EA6 \ 37 | F19F5FF2B0589EC341220045BA03F4DBE0C63FB4 \ 38 | 637DB1E23370F84AFF88CCE03152347D07DA627C \ 39 | ED9BDF7AD6A55E232E84524257FF9BDBCC301009 \ 40 | CFB16E21C950F67FA95E558F2EEB9F5CC09526C1 \ 41 | 152812300785C96444D3334D17565732E08E5E41 \ 42 | C388F6961FB972A95678E327F62711DBDCA8AE56 \ 43 | 9DEAE0DC7063249FB05474681E4AED62986CD25D \ 44 | D1DBF2C4B96F2DEBF4C16654410108112E7EA81F \ 45 | F4FC70F07310028424EFC20A8E4256593F177720 \ 46 | E61773CD6E01040E2F1BD78CE7E2984B6289C93A \ 47 | 9D3CC86A72F8494342EA5FD10A41BDC3F4FAFF1C \ 48 | 33C103B4B2794170546CCF7BCFB2C83C66CD792A \ 49 | 0CCBAAFD76A2ECE2CCD3141DE2FFD5B1D88CA97D \ 50 | F2CFC4ABD0B99D837EEBB7D09B79B45691DB4173 \ 51 | ; do \ 52 | gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "$key" || \ 53 | gpg --batch --keyserver keys.openpgp.org --recv-keys "$key" || \ 54 | gpg --batch --keyserver pgp.mit.edu --recv-keys "$key" || \ 55 | gpg --batch --keyserver keyserver.pgp.com --recv-keys "$key" || \ 56 | gpg --batch --keyserver ha.pool.sks-keyservers.net --recv-keys "$key" || \ 57 | gpg --batch --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys "$key" ; \ 58 | done \ 59 | && curl -SLO https://bitcoincore.org/bin/bitcoin-core-${BITCOIN_VERSION}/${RC_DIR}bitcoin-${BITCOIN_VERSION}${RC}-${TARGETPLATFORM}.tar.gz \ 60 | && curl -SLO https://bitcoincore.org/bin/bitcoin-core-${BITCOIN_VERSION}/${RC_DIR}SHA256SUMS \ 61 | && curl -SLO https://bitcoincore.org/bin/bitcoin-core-${BITCOIN_VERSION}/${RC_DIR}SHA256SUMS.asc \ 62 | && gpg --verify SHA256SUMS.asc SHA256SUMS \ 63 | && grep " bitcoin-${BITCOIN_VERSION}${RC}-${TARGETPLATFORM}.tar.gz" SHA256SUMS | sha256sum -c - \ 64 | && tar -xzf *.tar.gz -C /opt \ 65 | && rm *.tar.gz *.asc \ 66 | && rm -rf /opt/bitcoin-${BITCOIN_VERSION}${RC}/bin/bitcoin-qt 67 | 68 | COPY docker-entrypoint.sh /entrypoint.sh 69 | 70 | VOLUME ["/home/bitcoin/.bitcoin"] 71 | 72 | EXPOSE 8332 8333 18332 18333 18443 18444 38333 38332 73 | 74 | ENTRYPOINT ["/entrypoint.sh"] 75 | 76 | RUN bitcoind -version | grep "Bitcoin Core daemon version v${BITCOIN_VERSION}" 77 | 78 | CMD ["bitcoind"] 79 | -------------------------------------------------------------------------------- /29.1/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM debian:bookworm-slim 2 | 3 | ARG UID=101 4 | ARG GID=101 5 | 6 | LABEL maintainer.0="João Fonseca (@joaopaulofonseca)" \ 7 | maintainer.1="Pedro Branco (@pedrobranco)" \ 8 | maintainer.2="Rui Marinho (@ruimarinho)" 9 | 10 | RUN groupadd --gid ${GID} bitcoin \ 11 | && useradd --create-home --no-log-init -u ${UID} -g ${GID} bitcoin \ 12 | && apt-get update -y \ 13 | && apt-get install -y curl gnupg gosu \ 14 | && apt-get clean \ 15 | && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* 16 | 17 | # Special variables just for release candidates, both should be empty for stable 18 | # releases. 19 | ARG RC 20 | ARG RC_DIR 21 | 22 | ARG TARGETPLATFORM 23 | ENV BITCOIN_VERSION=29.1 24 | ENV BITCOIN_DATA=/home/bitcoin/.bitcoin 25 | ENV PATH=/opt/bitcoin-${BITCOIN_VERSION}${RC}/bin:$PATH 26 | 27 | RUN set -ex \ 28 | && if [ "${TARGETPLATFORM}" = "linux/amd64" ]; then export TARGETPLATFORM=x86_64-linux-gnu; fi \ 29 | && if [ "${TARGETPLATFORM}" = "linux/arm64" ]; then export TARGETPLATFORM=aarch64-linux-gnu; fi \ 30 | && if [ "${TARGETPLATFORM}" = "linux/arm/v7" ]; then export TARGETPLATFORM=arm-linux-gnueabihf; fi \ 31 | && for key in \ 32 | 101598DC823C1B5F9A6624ABA5E0907A0380E6C3 \ 33 | 6A8F9C266528E25AEB1D7731C2371D91CB716EA7 \ 34 | 2840EAABF4BC9F0FFD716AFAFBAFCC46DE2D3FE2 \ 35 | E86AE73439625BBEE306AAE6B66D427F873CB1A3 \ 36 | A0083660F235A27000CD3C81CE6EC49945C17EA6 \ 37 | F19F5FF2B0589EC341220045BA03F4DBE0C63FB4 \ 38 | 637DB1E23370F84AFF88CCE03152347D07DA627C \ 39 | ED9BDF7AD6A55E232E84524257FF9BDBCC301009 \ 40 | CFB16E21C950F67FA95E558F2EEB9F5CC09526C1 \ 41 | 152812300785C96444D3334D17565732E08E5E41 \ 42 | C388F6961FB972A95678E327F62711DBDCA8AE56 \ 43 | 9DEAE0DC7063249FB05474681E4AED62986CD25D \ 44 | D1DBF2C4B96F2DEBF4C16654410108112E7EA81F \ 45 | F4FC70F07310028424EFC20A8E4256593F177720 \ 46 | E61773CD6E01040E2F1BD78CE7E2984B6289C93A \ 47 | 9D3CC86A72F8494342EA5FD10A41BDC3F4FAFF1C \ 48 | 33C103B4B2794170546CCF7BCFB2C83C66CD792A \ 49 | 0CCBAAFD76A2ECE2CCD3141DE2FFD5B1D88CA97D \ 50 | F2CFC4ABD0B99D837EEBB7D09B79B45691DB4173 \ 51 | 0AD83877C1F0CD1EE9BD660AD7CC770B81FD22A8 \ 52 | ; do \ 53 | gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "$key" || \ 54 | gpg --batch --keyserver keys.openpgp.org --recv-keys "$key" || \ 55 | gpg --batch --keyserver pgp.mit.edu --recv-keys "$key" || \ 56 | gpg --batch --keyserver keyserver.pgp.com --recv-keys "$key" || \ 57 | gpg --batch --keyserver ha.pool.sks-keyservers.net --recv-keys "$key" || \ 58 | gpg --batch --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys "$key" ; \ 59 | done \ 60 | && curl -SLO https://bitcoincore.org/bin/bitcoin-core-${BITCOIN_VERSION}/${RC_DIR}bitcoin-${BITCOIN_VERSION}${RC}-${TARGETPLATFORM}.tar.gz \ 61 | && curl -SLO https://bitcoincore.org/bin/bitcoin-core-${BITCOIN_VERSION}/${RC_DIR}SHA256SUMS \ 62 | && curl -SLO https://bitcoincore.org/bin/bitcoin-core-${BITCOIN_VERSION}/${RC_DIR}SHA256SUMS.asc \ 63 | && gpg --verify SHA256SUMS.asc SHA256SUMS \ 64 | && grep " bitcoin-${BITCOIN_VERSION}${RC}-${TARGETPLATFORM}.tar.gz" SHA256SUMS | sha256sum -c - \ 65 | && tar -xzf *.tar.gz -C /opt \ 66 | && rm *.tar.gz *.asc \ 67 | && rm -rf /opt/bitcoin-${BITCOIN_VERSION}${RC}/bin/bitcoin-qt 68 | 69 | COPY docker-entrypoint.sh /entrypoint.sh 70 | 71 | VOLUME ["/home/bitcoin/.bitcoin"] 72 | 73 | EXPOSE 8332 8333 18332 18333 18443 18444 38333 38332 74 | 75 | ENTRYPOINT ["/entrypoint.sh"] 76 | 77 | RUN bitcoind -version | grep "Bitcoin Core daemon version v${BITCOIN_VERSION}" 78 | 79 | CMD ["bitcoind"] 80 | -------------------------------------------------------------------------------- /30/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM debian:bookworm-slim 2 | 3 | ARG UID=101 4 | ARG GID=101 5 | 6 | LABEL maintainer.0="João Fonseca (@joaopaulofonseca)" \ 7 | maintainer.1="Pedro Branco (@pedrobranco)" \ 8 | maintainer.2="Rui Marinho (@ruimarinho)" 9 | 10 | RUN groupadd --gid ${GID} bitcoin \ 11 | && useradd --create-home --no-log-init -u ${UID} -g ${GID} bitcoin \ 12 | && apt-get update -y \ 13 | && apt-get install -y curl gnupg gosu \ 14 | && apt-get clean \ 15 | && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* 16 | 17 | # Special variables just for release candidates, both should be empty for stable 18 | # releases. 19 | ARG RC 20 | ARG RC_DIR 21 | 22 | ARG TARGETPLATFORM 23 | ENV BITCOIN_VERSION=30.0 24 | ENV BITCOIN_DATA=/home/bitcoin/.bitcoin 25 | ENV PATH=/opt/bitcoin-${BITCOIN_VERSION}${RC}/bin:$PATH 26 | 27 | RUN set -ex \ 28 | && if [ "${TARGETPLATFORM}" = "linux/amd64" ]; then export TARGETPLATFORM=x86_64-linux-gnu; fi \ 29 | && if [ "${TARGETPLATFORM}" = "linux/arm64" ]; then export TARGETPLATFORM=aarch64-linux-gnu; fi \ 30 | && if [ "${TARGETPLATFORM}" = "linux/arm/v7" ]; then export TARGETPLATFORM=arm-linux-gnueabihf; fi \ 31 | && for key in \ 32 | 101598DC823C1B5F9A6624ABA5E0907A0380E6C3 \ 33 | 6A8F9C266528E25AEB1D7731C2371D91CB716EA7 \ 34 | 2840EAABF4BC9F0FFD716AFAFBAFCC46DE2D3FE2 \ 35 | E86AE73439625BBEE306AAE6B66D427F873CB1A3 \ 36 | A0083660F235A27000CD3C81CE6EC49945C17EA6 \ 37 | F19F5FF2B0589EC341220045BA03F4DBE0C63FB4 \ 38 | 637DB1E23370F84AFF88CCE03152347D07DA627C \ 39 | ED9BDF7AD6A55E232E84524257FF9BDBCC301009 \ 40 | CFB16E21C950F67FA95E558F2EEB9F5CC09526C1 \ 41 | 152812300785C96444D3334D17565732E08E5E41 \ 42 | C388F6961FB972A95678E327F62711DBDCA8AE56 \ 43 | 9DEAE0DC7063249FB05474681E4AED62986CD25D \ 44 | D1DBF2C4B96F2DEBF4C16654410108112E7EA81F \ 45 | F4FC70F07310028424EFC20A8E4256593F177720 \ 46 | E61773CD6E01040E2F1BD78CE7E2984B6289C93A \ 47 | 9D3CC86A72F8494342EA5FD10A41BDC3F4FAFF1C \ 48 | 33C103B4B2794170546CCF7BCFB2C83C66CD792A \ 49 | 0CCBAAFD76A2ECE2CCD3141DE2FFD5B1D88CA97D \ 50 | F2CFC4ABD0B99D837EEBB7D09B79B45691DB4173 \ 51 | 0AD83877C1F0CD1EE9BD660AD7CC770B81FD22A8 \ 52 | ; do \ 53 | gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "$key" || \ 54 | gpg --batch --keyserver keys.openpgp.org --recv-keys "$key" || \ 55 | gpg --batch --keyserver pgp.mit.edu --recv-keys "$key" || \ 56 | gpg --batch --keyserver keyserver.pgp.com --recv-keys "$key" || \ 57 | gpg --batch --keyserver ha.pool.sks-keyservers.net --recv-keys "$key" || \ 58 | gpg --batch --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys "$key" ; \ 59 | done \ 60 | && curl -SLO https://bitcoincore.org/bin/bitcoin-core-${BITCOIN_VERSION}/${RC_DIR}bitcoin-${BITCOIN_VERSION}${RC}-${TARGETPLATFORM}.tar.gz \ 61 | && curl -SLO https://bitcoincore.org/bin/bitcoin-core-${BITCOIN_VERSION}/${RC_DIR}SHA256SUMS \ 62 | && curl -SLO https://bitcoincore.org/bin/bitcoin-core-${BITCOIN_VERSION}/${RC_DIR}SHA256SUMS.asc \ 63 | && gpg --verify SHA256SUMS.asc SHA256SUMS \ 64 | && grep " bitcoin-${BITCOIN_VERSION}${RC}-${TARGETPLATFORM}.tar.gz" SHA256SUMS | sha256sum -c - \ 65 | && tar -xzf *.tar.gz -C /opt \ 66 | && rm *.tar.gz *.asc \ 67 | && rm -rf /opt/bitcoin-${BITCOIN_VERSION}${RC}/bin/bitcoin-qt 68 | 69 | COPY docker-entrypoint.sh /entrypoint.sh 70 | 71 | VOLUME ["/home/bitcoin/.bitcoin"] 72 | 73 | EXPOSE 8332 8333 18332 18333 18443 18444 38333 38332 74 | 75 | ENTRYPOINT ["/entrypoint.sh"] 76 | 77 | RUN bitcoind -version | grep "Bitcoin Core daemon version v${BITCOIN_VERSION}" 78 | 79 | CMD ["bitcoind"] 80 | -------------------------------------------------------------------------------- /29/alpine/Dockerfile: -------------------------------------------------------------------------------- 1 | # Build stage for Bitcoin Core 2 | FROM alpine as bitcoin-core 3 | 4 | ENV GNUPGHOME=/tmp/gnupg 5 | 6 | RUN sed -i 's/http\:\/\/dl-cdn.alpinelinux.org/https\:\/\/alpine.global.ssl.fastly.net/g' /etc/apk/repositories 7 | RUN apk --no-cache add cmake 8 | RUN apk --no-cache add boost-dev 9 | RUN apk --no-cache add build-base 10 | RUN apk --no-cache add chrpath 11 | RUN apk --no-cache add file 12 | RUN apk --no-cache add gnupg 13 | RUN apk --no-cache add libevent-dev 14 | RUN apk --no-cache add libressl 15 | RUN apk --no-cache add libtool 16 | RUN apk --no-cache add linux-headers 17 | RUN apk --no-cache add sqlite-dev 18 | RUN apk --no-cache add zeromq-dev 19 | RUN mkdir -p ${GNUPGHOME} 20 | RUN set -ex \ 21 | && for key in \ 22 | 101598DC823C1B5F9A6624ABA5E0907A0380E6C3 \ 23 | 6A8F9C266528E25AEB1D7731C2371D91CB716EA7 \ 24 | 2840EAABF4BC9F0FFD716AFAFBAFCC46DE2D3FE2 \ 25 | E86AE73439625BBEE306AAE6B66D427F873CB1A3 \ 26 | A0083660F235A27000CD3C81CE6EC49945C17EA6 \ 27 | F19F5FF2B0589EC341220045BA03F4DBE0C63FB4 \ 28 | 637DB1E23370F84AFF88CCE03152347D07DA627C \ 29 | ED9BDF7AD6A55E232E84524257FF9BDBCC301009 \ 30 | CFB16E21C950F67FA95E558F2EEB9F5CC09526C1 \ 31 | 152812300785C96444D3334D17565732E08E5E41 \ 32 | C388F6961FB972A95678E327F62711DBDCA8AE56 \ 33 | 9DEAE0DC7063249FB05474681E4AED62986CD25D \ 34 | D1DBF2C4B96F2DEBF4C16654410108112E7EA81F \ 35 | F4FC70F07310028424EFC20A8E4256593F177720 \ 36 | E61773CD6E01040E2F1BD78CE7E2984B6289C93A \ 37 | 9D3CC86A72F8494342EA5FD10A41BDC3F4FAFF1C \ 38 | 33C103B4B2794170546CCF7BCFB2C83C66CD792A \ 39 | 0CCBAAFD76A2ECE2CCD3141DE2FFD5B1D88CA97D \ 40 | F2CFC4ABD0B99D837EEBB7D09B79B45691DB4173 \ 41 | ; do \ 42 | gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "$key" || \ 43 | gpg --batch --keyserver keys.openpgp.org --recv-keys "$key" || \ 44 | gpg --batch --keyserver keyserver.pgp.com --recv-keys "$key" || \ 45 | gpg --batch --keyserver ha.pool.sks-keyservers.net --recv-keys "$key" || \ 46 | gpg --batch --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys "$key" ; \ 47 | done 48 | 49 | # Special variables just for release candidates, both should be empty for stable 50 | # releases. 51 | ARG RC 52 | ARG RC_DIR 53 | 54 | ENV BITCOIN_VERSION=29.0 55 | ENV BITCOIN_PREFIX=/opt/bitcoin-${BITCOIN_VERSION}${RC} 56 | 57 | RUN wget https://bitcoincore.org/bin/bitcoin-core-${BITCOIN_VERSION}/${RC_DIR}SHA256SUMS 58 | RUN wget https://bitcoincore.org/bin/bitcoin-core-${BITCOIN_VERSION}/${RC_DIR}SHA256SUMS.asc 59 | RUN wget https://bitcoincore.org/bin/bitcoin-core-${BITCOIN_VERSION}/${RC_DIR}bitcoin-${BITCOIN_VERSION}${RC}.tar.gz 60 | RUN gpg --verify SHA256SUMS.asc SHA256SUMS 61 | RUN grep " bitcoin-${BITCOIN_VERSION}${RC}.tar.gz\$" SHA256SUMS | sha256sum -c - 62 | RUN tar -xzf *.tar.gz 63 | 64 | WORKDIR /bitcoin-${BITCOIN_VERSION}${RC} 65 | 66 | RUN cmake -B build \ 67 | -DWITH_QRENCODE=OFF \ 68 | -DBUILD_TESTS=OFF \ 69 | -DWITH_ZMQ=ON \ 70 | -DCMAKE_INSTALL_PREFIX=${BITCOIN_PREFIX} 71 | RUN cmake --build build -j4 72 | RUN cmake --install build 73 | RUN strip ${BITCOIN_PREFIX}/bin/bitcoin-cli 74 | RUN strip ${BITCOIN_PREFIX}/bin/bitcoind 75 | 76 | # Build stage for compiled artifacts 77 | FROM alpine 78 | 79 | ARG UID=100 80 | ARG GID=101 81 | 82 | LABEL maintainer.0="João Fonseca (@joaopaulofonseca)" \ 83 | maintainer.1="Pedro Branco (@pedrobranco)" \ 84 | maintainer.2="Rui Marinho (@ruimarinho)" 85 | 86 | RUN addgroup bitcoin --gid ${GID} --system 87 | RUN adduser --uid ${UID} --system bitcoin --ingroup bitcoin 88 | RUN sed -i 's/http\:\/\/dl-cdn.alpinelinux.org/https\:\/\/alpine.global.ssl.fastly.net/g' /etc/apk/repositories 89 | RUN apk --no-cache add \ 90 | boost-filesystem \ 91 | boost-system \ 92 | boost-thread \ 93 | libevent \ 94 | libzmq \ 95 | shadow \ 96 | sqlite-dev \ 97 | su-exec 98 | 99 | # Special variables just for release candidates, both should be empty for stable 100 | # releases. 101 | # ENV RC= 102 | # ENV RC_DIR= 103 | 104 | ENV BITCOIN_DATA=/home/bitcoin/.bitcoin 105 | ENV BITCOIN_VERSION=29.0 106 | ENV BITCOIN_PREFIX=/opt/bitcoin-${BITCOIN_VERSION}${RC} 107 | ENV PATH=${BITCOIN_PREFIX}/bin:$PATH 108 | 109 | COPY --from=bitcoin-core /opt /opt 110 | COPY docker-entrypoint.sh /entrypoint.sh 111 | 112 | VOLUME ["/home/bitcoin/.bitcoin"] 113 | 114 | EXPOSE 8332 8333 18332 18333 18444 115 | 116 | ENTRYPOINT ["/entrypoint.sh"] 117 | 118 | RUN bitcoind -version | grep "Bitcoin Core daemon version v${BITCOIN_VERSION}" 119 | 120 | CMD ["bitcoind"] 121 | -------------------------------------------------------------------------------- /0.20/alpine/Dockerfile: -------------------------------------------------------------------------------- 1 | # Build stage for BerkeleyDB 2 | FROM alpine as berkeleydb 3 | 4 | RUN sed -i 's/http\:\/\/dl-cdn.alpinelinux.org/https\:\/\/alpine.global.ssl.fastly.net/g' /etc/apk/repositories 5 | RUN apk --no-cache add autoconf 6 | RUN apk --no-cache add automake 7 | RUN apk --no-cache add build-base 8 | RUN apk --no-cache add libressl 9 | 10 | ENV BERKELEYDB_VERSION=db-4.8.30.NC 11 | ENV BERKELEYDB_PREFIX=/opt/${BERKELEYDB_VERSION} 12 | 13 | RUN wget https://download.oracle.com/berkeley-db/${BERKELEYDB_VERSION}.tar.gz 14 | RUN tar -xzf *.tar.gz 15 | RUN sed s/__atomic_compare_exchange/__atomic_compare_exchange_db/g -i ${BERKELEYDB_VERSION}/dbinc/atomic.h 16 | RUN mkdir -p ${BERKELEYDB_PREFIX} 17 | 18 | WORKDIR /${BERKELEYDB_VERSION}/build_unix 19 | 20 | RUN ../dist/configure --enable-cxx --disable-shared --with-pic --prefix=${BERKELEYDB_PREFIX} 21 | RUN make -j4 22 | RUN make install 23 | RUN rm -rf ${BERKELEYDB_PREFIX}/docs 24 | 25 | # Build stage for Bitcoin Core 26 | FROM alpine as bitcoin-core 27 | 28 | COPY --from=berkeleydb /opt /opt 29 | 30 | RUN sed -i 's/http\:\/\/dl-cdn.alpinelinux.org/https\:\/\/alpine.global.ssl.fastly.net/g' /etc/apk/repositories 31 | RUN apk --no-cache add autoconf 32 | RUN apk --no-cache add automake 33 | RUN apk --no-cache add boost-dev 34 | RUN apk --no-cache add build-base 35 | RUN apk --no-cache add chrpath 36 | RUN apk --no-cache add file 37 | RUN apk --no-cache add gnupg 38 | RUN apk --no-cache add libevent-dev 39 | RUN apk --no-cache add libressl 40 | RUN apk --no-cache add libtool 41 | RUN apk --no-cache add linux-headers 42 | RUN apk --no-cache add zeromq-dev 43 | RUN set -ex \ 44 | && for key in \ 45 | 90C8019E36C2E964 \ 46 | ; do \ 47 | gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "$key" || \ 48 | gpg --batch --keyserver pgp.mit.edu --recv-keys "$key" || \ 49 | gpg --batch --keyserver keyserver.pgp.com --recv-keys "$key" || \ 50 | gpg --batch --keyserver ha.pool.sks-keyservers.net --recv-keys "$key" || \ 51 | gpg --batch --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys "$key" ; \ 52 | done 53 | 54 | ENV BITCOIN_VERSION=0.20.1 55 | ENV BITCOIN_PREFIX=/opt/bitcoin-${BITCOIN_VERSION} 56 | 57 | RUN wget https://bitcoin.org/bin/bitcoin-core-${BITCOIN_VERSION}/SHA256SUMS.asc 58 | RUN wget https://bitcoin.org/bin/bitcoin-core-${BITCOIN_VERSION}/bitcoin-${BITCOIN_VERSION}.tar.gz 59 | RUN gpg --verify SHA256SUMS.asc 60 | RUN grep " bitcoin-${BITCOIN_VERSION}.tar.gz\$" SHA256SUMS.asc | sha256sum -c - 61 | RUN tar -xzf *.tar.gz 62 | 63 | WORKDIR /bitcoin-${BITCOIN_VERSION} 64 | 65 | RUN sed -i '/AC_PREREQ/a\AR_FLAGS=cr' src/univalue/configure.ac 66 | RUN sed -i '/AX_PROG_CC_FOR_BUILD/a\AR_FLAGS=cr' src/secp256k1/configure.ac 67 | RUN sed -i s:sys/fcntl.h:fcntl.h: src/compat.h 68 | RUN ./autogen.sh 69 | RUN ./configure LDFLAGS=-L`ls -d /opt/db*`/lib/ CPPFLAGS=-I`ls -d /opt/db*`/include/ \ 70 | --prefix=${BITCOIN_PREFIX} \ 71 | --mandir=/usr/share/man \ 72 | --disable-tests \ 73 | --disable-bench \ 74 | --disable-ccache \ 75 | --with-gui=no \ 76 | --with-utils \ 77 | --with-libs \ 78 | --with-daemon 79 | RUN make -j4 80 | RUN make install 81 | RUN strip ${BITCOIN_PREFIX}/bin/bitcoin-cli 82 | RUN strip ${BITCOIN_PREFIX}/bin/bitcoin-tx 83 | RUN strip ${BITCOIN_PREFIX}/bin/bitcoind 84 | RUN strip ${BITCOIN_PREFIX}/lib/libbitcoinconsensus.a 85 | RUN strip ${BITCOIN_PREFIX}/lib/libbitcoinconsensus.so.0.0.0 86 | 87 | FROM alpine 88 | 89 | ARG UID=100 90 | ARG GID=101 91 | 92 | LABEL maintainer.0="João Fonseca (@joaopaulofonseca)" \ 93 | maintainer.1="Pedro Branco (@pedrobranco)" \ 94 | maintainer.2="Rui Marinho (@ruimarinho)" 95 | 96 | RUN addgroup -S bitcoin 97 | RUN adduser -G bitcoin -H -S bitcoin 98 | RUN sed -i 's/http\:\/\/dl-cdn.alpinelinux.org/https\:\/\/alpine.global.ssl.fastly.net/g' /etc/apk/repositories 99 | RUN apk --no-cache add \ 100 | boost-filesystem \ 101 | boost-system \ 102 | boost-thread \ 103 | libevent \ 104 | libzmq \ 105 | shadow \ 106 | su-exec 107 | 108 | ENV BITCOIN_DATA=/home/bitcoin/.bitcoin 109 | ENV BITCOIN_VERSION=0.20.1 110 | ENV BITCOIN_PREFIX=/opt/bitcoin-${BITCOIN_VERSION} 111 | ENV PATH=${BITCOIN_PREFIX}/bin:$PATH 112 | 113 | COPY --from=bitcoin-core /opt /opt 114 | COPY docker-entrypoint.sh /entrypoint.sh 115 | 116 | VOLUME ["/home/bitcoin/.bitcoin"] 117 | 118 | EXPOSE 8332 8333 18332 18333 18444 119 | 120 | ENTRYPOINT ["/entrypoint.sh"] 121 | 122 | RUN bitcoind -version | grep "Bitcoin Core version v${BITCOIN_VERSION}" 123 | 124 | CMD ["bitcoind"] 125 | -------------------------------------------------------------------------------- /29.1/alpine/Dockerfile: -------------------------------------------------------------------------------- 1 | # Build stage for Bitcoin Core 2 | FROM alpine as bitcoin-core 3 | 4 | ENV GNUPGHOME=/tmp/gnupg 5 | 6 | RUN sed -i 's/http\:\/\/dl-cdn.alpinelinux.org/https\:\/\/alpine.global.ssl.fastly.net/g' /etc/apk/repositories 7 | RUN apk --no-cache add cmake 8 | RUN apk --no-cache add boost-dev 9 | RUN apk --no-cache add build-base 10 | RUN apk --no-cache add chrpath 11 | RUN apk --no-cache add file 12 | RUN apk --no-cache add gnupg 13 | RUN apk --no-cache add libevent-dev 14 | RUN apk --no-cache add libressl 15 | RUN apk --no-cache add libtool 16 | RUN apk --no-cache add linux-headers 17 | RUN apk --no-cache add sqlite-dev 18 | RUN apk --no-cache add zeromq-dev 19 | RUN mkdir -p ${GNUPGHOME} 20 | RUN set -ex \ 21 | && for key in \ 22 | 101598DC823C1B5F9A6624ABA5E0907A0380E6C3 \ 23 | 6A8F9C266528E25AEB1D7731C2371D91CB716EA7 \ 24 | 2840EAABF4BC9F0FFD716AFAFBAFCC46DE2D3FE2 \ 25 | E86AE73439625BBEE306AAE6B66D427F873CB1A3 \ 26 | A0083660F235A27000CD3C81CE6EC49945C17EA6 \ 27 | F19F5FF2B0589EC341220045BA03F4DBE0C63FB4 \ 28 | 637DB1E23370F84AFF88CCE03152347D07DA627C \ 29 | ED9BDF7AD6A55E232E84524257FF9BDBCC301009 \ 30 | CFB16E21C950F67FA95E558F2EEB9F5CC09526C1 \ 31 | 152812300785C96444D3334D17565732E08E5E41 \ 32 | C388F6961FB972A95678E327F62711DBDCA8AE56 \ 33 | 9DEAE0DC7063249FB05474681E4AED62986CD25D \ 34 | D1DBF2C4B96F2DEBF4C16654410108112E7EA81F \ 35 | F4FC70F07310028424EFC20A8E4256593F177720 \ 36 | E61773CD6E01040E2F1BD78CE7E2984B6289C93A \ 37 | 9D3CC86A72F8494342EA5FD10A41BDC3F4FAFF1C \ 38 | 33C103B4B2794170546CCF7BCFB2C83C66CD792A \ 39 | 0CCBAAFD76A2ECE2CCD3141DE2FFD5B1D88CA97D \ 40 | F2CFC4ABD0B99D837EEBB7D09B79B45691DB4173 \ 41 | 0AD83877C1F0CD1EE9BD660AD7CC770B81FD22A8 \ 42 | ; do \ 43 | gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "$key" || \ 44 | gpg --batch --keyserver keys.openpgp.org --recv-keys "$key" || \ 45 | gpg --batch --keyserver keyserver.pgp.com --recv-keys "$key" || \ 46 | gpg --batch --keyserver ha.pool.sks-keyservers.net --recv-keys "$key" || \ 47 | gpg --batch --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys "$key" ; \ 48 | done 49 | 50 | # Special variables just for release candidates, both should be empty for stable 51 | # releases. 52 | ARG RC 53 | ARG RC_DIR 54 | 55 | ENV BITCOIN_VERSION=29.1 56 | ENV BITCOIN_PREFIX=/opt/bitcoin-${BITCOIN_VERSION}${RC} 57 | 58 | RUN wget https://bitcoincore.org/bin/bitcoin-core-${BITCOIN_VERSION}/${RC_DIR}SHA256SUMS 59 | RUN wget https://bitcoincore.org/bin/bitcoin-core-${BITCOIN_VERSION}/${RC_DIR}SHA256SUMS.asc 60 | RUN wget https://bitcoincore.org/bin/bitcoin-core-${BITCOIN_VERSION}/${RC_DIR}bitcoin-${BITCOIN_VERSION}${RC}.tar.gz 61 | RUN gpg --verify SHA256SUMS.asc SHA256SUMS 62 | RUN grep " bitcoin-${BITCOIN_VERSION}${RC}.tar.gz\$" SHA256SUMS | sha256sum -c - 63 | RUN tar -xzf *.tar.gz 64 | 65 | WORKDIR /bitcoin-${BITCOIN_VERSION}${RC} 66 | 67 | RUN cmake -B build \ 68 | -DWITH_QRENCODE=OFF \ 69 | -DBUILD_TESTS=OFF \ 70 | -DWITH_ZMQ=ON \ 71 | -DCMAKE_INSTALL_PREFIX=${BITCOIN_PREFIX} 72 | RUN cmake --build build -j4 73 | RUN cmake --install build 74 | RUN strip ${BITCOIN_PREFIX}/bin/bitcoin-cli 75 | RUN strip ${BITCOIN_PREFIX}/bin/bitcoind 76 | 77 | # Build stage for compiled artifacts 78 | FROM alpine 79 | 80 | ARG UID=100 81 | ARG GID=101 82 | 83 | LABEL maintainer.0="João Fonseca (@joaopaulofonseca)" \ 84 | maintainer.1="Pedro Branco (@pedrobranco)" \ 85 | maintainer.2="Rui Marinho (@ruimarinho)" 86 | 87 | RUN addgroup bitcoin --gid ${GID} --system 88 | RUN adduser --uid ${UID} --system bitcoin --ingroup bitcoin 89 | RUN sed -i 's/http\:\/\/dl-cdn.alpinelinux.org/https\:\/\/alpine.global.ssl.fastly.net/g' /etc/apk/repositories 90 | RUN apk --no-cache add \ 91 | boost-filesystem \ 92 | boost-system \ 93 | boost-thread \ 94 | libevent \ 95 | libzmq \ 96 | shadow \ 97 | sqlite-dev \ 98 | su-exec 99 | 100 | # Special variables just for release candidates, both should be empty for stable 101 | # releases. 102 | # ENV RC= 103 | # ENV RC_DIR= 104 | 105 | ENV BITCOIN_DATA=/home/bitcoin/.bitcoin 106 | ENV BITCOIN_VERSION=29.1 107 | ENV BITCOIN_PREFIX=/opt/bitcoin-${BITCOIN_VERSION}${RC} 108 | ENV PATH=${BITCOIN_PREFIX}/bin:$PATH 109 | 110 | COPY --from=bitcoin-core /opt /opt 111 | COPY docker-entrypoint.sh /entrypoint.sh 112 | 113 | VOLUME ["/home/bitcoin/.bitcoin"] 114 | 115 | EXPOSE 8332 8333 18332 18333 18444 116 | 117 | ENTRYPOINT ["/entrypoint.sh"] 118 | 119 | RUN bitcoind -version | grep "Bitcoin Core daemon version v${BITCOIN_VERSION}" 120 | 121 | CMD ["bitcoind"] 122 | -------------------------------------------------------------------------------- /0.12/alpine/Dockerfile: -------------------------------------------------------------------------------- 1 | # Build stage for BerkeleyDB 2 | FROM alpine:3.9 as berkeleydb 3 | 4 | RUN sed -i 's/http\:\/\/dl-cdn.alpinelinux.org/https\:\/\/alpine.global.ssl.fastly.net/g' /etc/apk/repositories 5 | RUN apk --no-cache add autoconf 6 | RUN apk --no-cache add automake 7 | RUN apk --no-cache add build-base 8 | RUN apk --no-cache add libressl 9 | 10 | ENV BERKELEYDB_VERSION=db-4.8.30.NC 11 | ENV BERKELEYDB_PREFIX=/opt/${BERKELEYDB_VERSION} 12 | 13 | RUN wget https://download.oracle.com/berkeley-db/${BERKELEYDB_VERSION}.tar.gz 14 | RUN tar -xzf *.tar.gz 15 | RUN sed s/__atomic_compare_exchange/__atomic_compare_exchange_db/g -i ${BERKELEYDB_VERSION}/dbinc/atomic.h 16 | RUN mkdir -p ${BERKELEYDB_PREFIX} 17 | 18 | WORKDIR /${BERKELEYDB_VERSION}/build_unix 19 | 20 | RUN ../dist/configure --enable-cxx --disable-shared --with-pic --prefix=${BERKELEYDB_PREFIX} 21 | RUN make -j4 22 | RUN make install 23 | RUN rm -rf ${BERKELEYDB_PREFIX}/docs 24 | 25 | # Build stage for Bitcoin Core 26 | FROM alpine:3.9 as bitcoin-core 27 | 28 | COPY --from=berkeleydb /opt /opt 29 | 30 | RUN sed -i 's/http\:\/\/dl-cdn.alpinelinux.org/https\:\/\/alpine.global.ssl.fastly.net/g' /etc/apk/repositories 31 | RUN apk --no-cache add autoconf 32 | RUN apk --no-cache add automake 33 | RUN apk --no-cache add boost-dev 34 | RUN apk --no-cache add build-base 35 | RUN apk --no-cache add chrpath 36 | RUN apk --no-cache add file 37 | RUN apk --no-cache add gnupg 38 | RUN apk --no-cache add libevent-dev 39 | RUN apk --no-cache add libressl 40 | RUN apk --no-cache add libressl-dev 41 | RUN apk --no-cache add libtool 42 | RUN apk --no-cache add linux-headers 43 | RUN apk --no-cache add protobuf-dev 44 | RUN apk --no-cache add zeromq-dev 45 | RUN set -ex \ 46 | && for key in \ 47 | 90C8019E36C2E964 \ 48 | ; do \ 49 | gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "$key" || \ 50 | gpg --batch --keyserver pgp.mit.edu --recv-keys "$key" || \ 51 | gpg --batch --keyserver keyserver.pgp.com --recv-keys "$key" || \ 52 | gpg --batch --keyserver ha.pool.sks-keyservers.net --recv-keys "$key" || \ 53 | gpg --batch --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys "$key" ; \ 54 | done 55 | 56 | ENV BITCOIN_VERSION=0.12.1 57 | ENV BITCOIN_PREFIX=/opt/bitcoin-${BITCOIN_VERSION} 58 | 59 | RUN wget https://bitcoin.org/bin/bitcoin-core-${BITCOIN_VERSION}/SHA256SUMS.asc 60 | RUN wget https://bitcoin.org/bin/bitcoin-core-${BITCOIN_VERSION}/bitcoin-${BITCOIN_VERSION}.tar.gz 61 | RUN gpg --verify SHA256SUMS.asc 62 | RUN grep " bitcoin-${BITCOIN_VERSION}.tar.gz\$" SHA256SUMS.asc | sha256sum -c - 63 | RUN tar -xzf *.tar.gz 64 | 65 | WORKDIR /bitcoin-${BITCOIN_VERSION} 66 | 67 | COPY patches/boost.patch /boost.patch 68 | COPY patches/warnings.patch /warnings.patch 69 | 70 | RUN patch -p0 < /boost.patch 71 | RUN patch -p0 < /warnings.patch 72 | RUN ./autogen.sh 73 | RUN ./configure LDFLAGS=-L`ls -d /opt/db*`/lib/ CPPFLAGS=-I`ls -d /opt/db*`/include/ \ 74 | --prefix=${BITCOIN_PREFIX} \ 75 | --mandir=/usr/share/man \ 76 | --disable-tests \ 77 | --disable-bench \ 78 | --disable-ccache \ 79 | --with-gui=no \ 80 | --with-utils \ 81 | --with-libs \ 82 | --with-daemon 83 | RUN make -j4 84 | RUN make install 85 | RUN strip ${BITCOIN_PREFIX}/bin/bitcoin-cli 86 | RUN strip ${BITCOIN_PREFIX}/bin/bitcoin-tx 87 | RUN strip ${BITCOIN_PREFIX}/bin/bitcoind 88 | RUN strip ${BITCOIN_PREFIX}/lib/libbitcoinconsensus.a 89 | RUN strip ${BITCOIN_PREFIX}/lib/libbitcoinconsensus.so.0.0.0 90 | 91 | # Build stage for compiled artifacts 92 | FROM alpine:3.9 93 | 94 | ARG UID=100 95 | ARG GID=101 96 | 97 | LABEL maintainer.0="João Fonseca (@joaopaulofonseca)" \ 98 | maintainer.1="Pedro Branco (@pedrobranco)" \ 99 | maintainer.2="Rui Marinho (@ruimarinho)" 100 | 101 | RUN addgroup -S bitcoin 102 | RUN adduser -G bitcoin -H -S bitcoin 103 | RUN sed -i 's/http\:\/\/dl-cdn.alpinelinux.org/https\:\/\/alpine.global.ssl.fastly.net/g' /etc/apk/repositories 104 | RUN apk --no-cache add \ 105 | boost \ 106 | boost-program_options \ 107 | libevent \ 108 | libressl \ 109 | libzmq \ 110 | shadow \ 111 | su-exec 112 | 113 | ENV BITCOIN_DATA=/home/bitcoin/.bitcoin 114 | ENV BITCOIN_VERSION=0.12.1 115 | ENV BITCOIN_PREFIX=/opt/bitcoin-${BITCOIN_VERSION} 116 | ENV PATH=${BITCOIN_PREFIX}/bin:$PATH 117 | 118 | COPY --from=bitcoin-core /opt /opt 119 | COPY docker-entrypoint.sh /entrypoint.sh 120 | 121 | VOLUME ["/home/bitcoin/.bitcoin"] 122 | 123 | EXPOSE 8332 8333 18332 18333 18444 124 | 125 | ENTRYPOINT ["/entrypoint.sh"] 126 | 127 | RUN bitcoind -version | grep "Bitcoin Core Daemon" 128 | 129 | CMD ["bitcoind"] 130 | -------------------------------------------------------------------------------- /0.13/alpine/Dockerfile: -------------------------------------------------------------------------------- 1 | # Build stage for BerkeleyDB 2 | FROM alpine:3.9 as berkeleydb 3 | 4 | RUN sed -i 's/http\:\/\/dl-cdn.alpinelinux.org/https\:\/\/alpine.global.ssl.fastly.net/g' /etc/apk/repositories 5 | RUN apk --no-cache add autoconf 6 | RUN apk --no-cache add automake 7 | RUN apk --no-cache add build-base 8 | RUN apk --no-cache add libressl 9 | 10 | ENV BERKELEYDB_VERSION=db-4.8.30.NC 11 | ENV BERKELEYDB_PREFIX=/opt/${BERKELEYDB_VERSION} 12 | 13 | RUN wget https://download.oracle.com/berkeley-db/${BERKELEYDB_VERSION}.tar.gz 14 | RUN tar -xzf *.tar.gz 15 | RUN sed s/__atomic_compare_exchange/__atomic_compare_exchange_db/g -i ${BERKELEYDB_VERSION}/dbinc/atomic.h 16 | RUN mkdir -p ${BERKELEYDB_PREFIX} 17 | 18 | WORKDIR /${BERKELEYDB_VERSION}/build_unix 19 | 20 | RUN ../dist/configure --enable-cxx --disable-shared --with-pic --prefix=${BERKELEYDB_PREFIX} 21 | RUN make -j4 22 | RUN make install 23 | RUN rm -rf ${BERKELEYDB_PREFIX}/docs 24 | 25 | # Build stage for Bitcoin Core 26 | FROM alpine:3.9 as bitcoin-core 27 | 28 | COPY --from=berkeleydb /opt /opt 29 | 30 | RUN sed -i 's/http\:\/\/dl-cdn.alpinelinux.org/https\:\/\/alpine.global.ssl.fastly.net/g' /etc/apk/repositories 31 | RUN apk --no-cache add autoconf 32 | RUN apk --no-cache add automake 33 | RUN apk --no-cache add boost-dev 34 | RUN apk --no-cache add build-base 35 | RUN apk --no-cache add chrpath 36 | RUN apk --no-cache add file 37 | RUN apk --no-cache add gnupg 38 | RUN apk --no-cache add libevent-dev 39 | RUN apk --no-cache add libressl 40 | RUN apk --no-cache add libressl-dev 41 | RUN apk --no-cache add libtool 42 | RUN apk --no-cache add linux-headers 43 | RUN apk --no-cache add protobuf-dev 44 | RUN apk --no-cache add zeromq-dev 45 | RUN set -ex \ 46 | && for key in \ 47 | 90C8019E36C2E964 \ 48 | ; do \ 49 | gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "$key" || \ 50 | gpg --batch --keyserver pgp.mit.edu --recv-keys "$key" || \ 51 | gpg --batch --keyserver keyserver.pgp.com --recv-keys "$key" || \ 52 | gpg --batch --keyserver ha.pool.sks-keyservers.net --recv-keys "$key" || \ 53 | gpg --batch --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys "$key" ; \ 54 | done 55 | 56 | ENV BITCOIN_VERSION=0.13.2 57 | ENV BITCOIN_PREFIX=/opt/bitcoin-${BITCOIN_VERSION} 58 | 59 | RUN wget https://bitcoin.org/bin/bitcoin-core-${BITCOIN_VERSION}/SHA256SUMS.asc 60 | RUN wget https://bitcoin.org/bin/bitcoin-core-${BITCOIN_VERSION}/bitcoin-${BITCOIN_VERSION}.tar.gz 61 | RUN gpg --verify SHA256SUMS.asc 62 | RUN grep " bitcoin-${BITCOIN_VERSION}.tar.gz\$" SHA256SUMS.asc | sha256sum -c - 63 | RUN tar -xzf *.tar.gz 64 | 65 | WORKDIR /bitcoin-${BITCOIN_VERSION} 66 | 67 | COPY patches/boost.patch /boost.patch 68 | COPY patches/warnings.patch /warnings.patch 69 | 70 | RUN patch -p0 < /boost.patch 71 | RUN patch -p0 < /warnings.patch 72 | RUN ./autogen.sh 73 | RUN ./configure LDFLAGS=-L`ls -d /opt/db*`/lib/ CPPFLAGS=-I`ls -d /opt/db*`/include/ \ 74 | --prefix=${BITCOIN_PREFIX} \ 75 | --mandir=/usr/share/man \ 76 | --disable-tests \ 77 | --disable-bench \ 78 | --disable-ccache \ 79 | --with-gui=no \ 80 | --with-utils \ 81 | --with-libs \ 82 | --with-daemon 83 | RUN make -j4 84 | RUN make install 85 | RUN strip ${BITCOIN_PREFIX}/bin/bitcoin-cli 86 | RUN strip ${BITCOIN_PREFIX}/bin/bitcoin-tx 87 | RUN strip ${BITCOIN_PREFIX}/bin/bitcoind 88 | RUN strip ${BITCOIN_PREFIX}/lib/libbitcoinconsensus.a 89 | RUN strip ${BITCOIN_PREFIX}/lib/libbitcoinconsensus.so.0.0.0 90 | 91 | # Build stage for compiled artifacts 92 | FROM alpine:3.9 93 | 94 | ARG UID=100 95 | ARG GID=101 96 | 97 | LABEL maintainer.0="João Fonseca (@joaopaulofonseca)" \ 98 | maintainer.1="Pedro Branco (@pedrobranco)" \ 99 | maintainer.2="Rui Marinho (@ruimarinho)" 100 | 101 | RUN addgroup -S bitcoin 102 | RUN adduser -G bitcoin -H -S bitcoin 103 | RUN sed -i 's/http\:\/\/dl-cdn.alpinelinux.org/https\:\/\/alpine.global.ssl.fastly.net/g' /etc/apk/repositories 104 | RUN apk --no-cache add \ 105 | boost \ 106 | boost-program_options \ 107 | libevent \ 108 | libressl \ 109 | libzmq \ 110 | shadow \ 111 | su-exec 112 | 113 | ENV BITCOIN_DATA=/home/bitcoin/.bitcoin 114 | ENV BITCOIN_VERSION=0.13.2 115 | ENV BITCOIN_PREFIX=/opt/bitcoin-${BITCOIN_VERSION} 116 | ENV PATH=${BITCOIN_PREFIX}/bin:$PATH 117 | 118 | COPY --from=bitcoin-core /opt /opt 119 | COPY docker-entrypoint.sh /entrypoint.sh 120 | 121 | VOLUME ["/home/bitcoin/.bitcoin"] 122 | 123 | EXPOSE 8332 8333 18332 18333 18444 124 | 125 | ENTRYPOINT ["/entrypoint.sh"] 126 | 127 | RUN bitcoind -version | grep "Bitcoin Core Daemon" 128 | 129 | CMD ["bitcoind"] 130 | -------------------------------------------------------------------------------- /0.19/alpine/Dockerfile: -------------------------------------------------------------------------------- 1 | # Build stage for BerkeleyDB 2 | FROM alpine as berkeleydb 3 | 4 | RUN sed -i 's/http\:\/\/dl-cdn.alpinelinux.org/https\:\/\/alpine.global.ssl.fastly.net/g' /etc/apk/repositories 5 | RUN apk --no-cache add autoconf 6 | RUN apk --no-cache add automake 7 | RUN apk --no-cache add build-base 8 | RUN apk --no-cache add libressl 9 | 10 | ENV BERKELEYDB_VERSION=db-4.8.30.NC 11 | ENV BERKELEYDB_PREFIX=/opt/${BERKELEYDB_VERSION} 12 | 13 | RUN wget https://download.oracle.com/berkeley-db/${BERKELEYDB_VERSION}.tar.gz 14 | RUN tar -xzf *.tar.gz 15 | RUN sed s/__atomic_compare_exchange/__atomic_compare_exchange_db/g -i ${BERKELEYDB_VERSION}/dbinc/atomic.h 16 | RUN mkdir -p ${BERKELEYDB_PREFIX} 17 | 18 | WORKDIR /${BERKELEYDB_VERSION}/build_unix 19 | 20 | RUN ../dist/configure --enable-cxx --disable-shared --with-pic --prefix=${BERKELEYDB_PREFIX} 21 | RUN make -j4 22 | RUN make install 23 | RUN rm -rf ${BERKELEYDB_PREFIX}/docs 24 | 25 | # Build stage for Bitcoin Core 26 | FROM alpine as bitcoin-core 27 | 28 | COPY --from=berkeleydb /opt /opt 29 | 30 | RUN sed -i 's/http\:\/\/dl-cdn.alpinelinux.org/https\:\/\/alpine.global.ssl.fastly.net/g' /etc/apk/repositories 31 | RUN apk --no-cache add autoconf 32 | RUN apk --no-cache add automake 33 | RUN apk --no-cache add boost-dev 34 | RUN apk --no-cache add build-base 35 | RUN apk --no-cache add chrpath 36 | RUN apk --no-cache add file 37 | RUN apk --no-cache add gnupg 38 | RUN apk --no-cache add libevent-dev 39 | RUN apk --no-cache add libressl 40 | RUN apk --no-cache add libressl-dev 41 | RUN apk --no-cache add libtool 42 | RUN apk --no-cache add linux-headers 43 | RUN apk --no-cache add zeromq-dev 44 | RUN set -ex \ 45 | && for key in \ 46 | 90C8019E36C2E964 \ 47 | ; do \ 48 | gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "$key" || \ 49 | gpg --batch --keyserver pgp.mit.edu --recv-keys "$key" || \ 50 | gpg --batch --keyserver keyserver.pgp.com --recv-keys "$key" || \ 51 | gpg --batch --keyserver ha.pool.sks-keyservers.net --recv-keys "$key" || \ 52 | gpg --batch --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys "$key" ; \ 53 | done 54 | 55 | ENV BITCOIN_VERSION=0.19.1 56 | ENV BITCOIN_PREFIX=/opt/bitcoin-${BITCOIN_VERSION} 57 | 58 | RUN wget https://bitcoin.org/bin/bitcoin-core-${BITCOIN_VERSION}/SHA256SUMS.asc 59 | RUN wget https://bitcoin.org/bin/bitcoin-core-${BITCOIN_VERSION}/bitcoin-${BITCOIN_VERSION}.tar.gz 60 | RUN gpg --verify SHA256SUMS.asc 61 | RUN grep " bitcoin-${BITCOIN_VERSION}.tar.gz\$" SHA256SUMS.asc | sha256sum -c - 62 | RUN tar -xzf *.tar.gz 63 | 64 | WORKDIR /bitcoin-${BITCOIN_VERSION} 65 | 66 | RUN sed -i '/AC_PREREQ/a\AR_FLAGS=cr' src/univalue/configure.ac 67 | RUN sed -i '/AX_PROG_CC_FOR_BUILD/a\AR_FLAGS=cr' src/secp256k1/configure.ac 68 | RUN sed -i s:sys/fcntl.h:fcntl.h: src/compat.h 69 | RUN ./autogen.sh 70 | RUN ./configure LDFLAGS=-L`ls -d /opt/db*`/lib/ CPPFLAGS=-I`ls -d /opt/db*`/include/ \ 71 | --prefix=${BITCOIN_PREFIX} \ 72 | --mandir=/usr/share/man \ 73 | --disable-tests \ 74 | --disable-bench \ 75 | --disable-ccache \ 76 | --with-gui=no \ 77 | --with-utils \ 78 | --with-libs \ 79 | --with-daemon 80 | RUN make -j4 81 | RUN make install 82 | RUN strip ${BITCOIN_PREFIX}/bin/bitcoin-cli 83 | RUN strip ${BITCOIN_PREFIX}/bin/bitcoin-tx 84 | RUN strip ${BITCOIN_PREFIX}/bin/bitcoind 85 | RUN strip ${BITCOIN_PREFIX}/lib/libbitcoinconsensus.a 86 | RUN strip ${BITCOIN_PREFIX}/lib/libbitcoinconsensus.so.0.0.0 87 | 88 | FROM alpine 89 | 90 | ARG UID=101 91 | ARG GID=101 92 | 93 | LABEL maintainer.0="João Fonseca (@joaopaulofonseca)" \ 94 | maintainer.1="Pedro Branco (@pedrobranco)" \ 95 | maintainer.2="Rui Marinho (@ruimarinho)" 96 | 97 | RUN addgroup -S bitcoin 98 | RUN adduser -G bitcoin -H -S bitcoin 99 | RUN sed -i 's/http\:\/\/dl-cdn.alpinelinux.org/https\:\/\/alpine.global.ssl.fastly.net/g' /etc/apk/repositories 100 | RUN apk --no-cache add \ 101 | boost-chrono \ 102 | boost-filesystem \ 103 | boost-system \ 104 | boost-thread \ 105 | libevent \ 106 | libressl \ 107 | libzmq \ 108 | shadow \ 109 | su-exec 110 | 111 | ENV BITCOIN_DATA=/home/bitcoin/.bitcoin 112 | ENV BITCOIN_VERSION=0.19.1 113 | ENV BITCOIN_PREFIX=/opt/bitcoin-${BITCOIN_VERSION} 114 | ENV PATH=${BITCOIN_PREFIX}/bin:$PATH 115 | 116 | COPY --from=bitcoin-core /opt /opt 117 | COPY docker-entrypoint.sh /entrypoint.sh 118 | 119 | VOLUME ["/home/bitcoin/.bitcoin"] 120 | 121 | EXPOSE 8332 8333 18332 18333 18444 122 | 123 | ENTRYPOINT ["/entrypoint.sh"] 124 | 125 | RUN bitcoind -version | grep "Bitcoin Core version v${BITCOIN_VERSION}" 126 | 127 | CMD ["bitcoind"] 128 | -------------------------------------------------------------------------------- /30/alpine/Dockerfile: -------------------------------------------------------------------------------- 1 | # Build stage for Bitcoin Core 2 | FROM alpine as bitcoin-core 3 | 4 | ENV GNUPGHOME=/tmp/gnupg 5 | 6 | RUN sed -i 's/http\:\/\/dl-cdn.alpinelinux.org/https\:\/\/alpine.global.ssl.fastly.net/g' /etc/apk/repositories 7 | RUN apk --no-cache add cmake 8 | RUN apk --no-cache add boost-dev 9 | RUN apk --no-cache add build-base 10 | RUN apk --no-cache add chrpath 11 | RUN apk --no-cache add file 12 | RUN apk --no-cache add gnupg 13 | RUN apk --no-cache add libevent-dev 14 | RUN apk --no-cache add libressl 15 | RUN apk --no-cache add libtool 16 | RUN apk --no-cache add linux-headers 17 | RUN apk --no-cache add sqlite-dev 18 | RUN apk --no-cache add zeromq-dev 19 | RUN mkdir -p ${GNUPGHOME} 20 | RUN set -ex \ 21 | && for key in \ 22 | 101598DC823C1B5F9A6624ABA5E0907A0380E6C3 \ 23 | 6A8F9C266528E25AEB1D7731C2371D91CB716EA7 \ 24 | 2840EAABF4BC9F0FFD716AFAFBAFCC46DE2D3FE2 \ 25 | E86AE73439625BBEE306AAE6B66D427F873CB1A3 \ 26 | A0083660F235A27000CD3C81CE6EC49945C17EA6 \ 27 | F19F5FF2B0589EC341220045BA03F4DBE0C63FB4 \ 28 | 637DB1E23370F84AFF88CCE03152347D07DA627C \ 29 | ED9BDF7AD6A55E232E84524257FF9BDBCC301009 \ 30 | CFB16E21C950F67FA95E558F2EEB9F5CC09526C1 \ 31 | 152812300785C96444D3334D17565732E08E5E41 \ 32 | C388F6961FB972A95678E327F62711DBDCA8AE56 \ 33 | 9DEAE0DC7063249FB05474681E4AED62986CD25D \ 34 | D1DBF2C4B96F2DEBF4C16654410108112E7EA81F \ 35 | F4FC70F07310028424EFC20A8E4256593F177720 \ 36 | E61773CD6E01040E2F1BD78CE7E2984B6289C93A \ 37 | 9D3CC86A72F8494342EA5FD10A41BDC3F4FAFF1C \ 38 | 33C103B4B2794170546CCF7BCFB2C83C66CD792A \ 39 | 0CCBAAFD76A2ECE2CCD3141DE2FFD5B1D88CA97D \ 40 | F2CFC4ABD0B99D837EEBB7D09B79B45691DB4173 \ 41 | 0AD83877C1F0CD1EE9BD660AD7CC770B81FD22A8 \ 42 | ; do \ 43 | gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "$key" || \ 44 | gpg --batch --keyserver keys.openpgp.org --recv-keys "$key" || \ 45 | gpg --batch --keyserver keyserver.pgp.com --recv-keys "$key" || \ 46 | gpg --batch --keyserver ha.pool.sks-keyservers.net --recv-keys "$key" || \ 47 | gpg --batch --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys "$key" ; \ 48 | done 49 | 50 | # Special variables just for release candidates, both should be empty for stable 51 | # releases. 52 | ARG RC 53 | ARG RC_DIR 54 | 55 | ENV BITCOIN_VERSION=30.0 56 | ENV BITCOIN_PREFIX=/opt/bitcoin-${BITCOIN_VERSION}${RC} 57 | 58 | RUN wget https://bitcoincore.org/bin/bitcoin-core-${BITCOIN_VERSION}/${RC_DIR}SHA256SUMS 59 | RUN wget https://bitcoincore.org/bin/bitcoin-core-${BITCOIN_VERSION}/${RC_DIR}SHA256SUMS.asc 60 | RUN wget https://bitcoincore.org/bin/bitcoin-core-${BITCOIN_VERSION}/${RC_DIR}bitcoin-${BITCOIN_VERSION}${RC}.tar.gz 61 | RUN gpg --verify SHA256SUMS.asc SHA256SUMS 62 | RUN grep " bitcoin-${BITCOIN_VERSION}${RC}.tar.gz\$" SHA256SUMS | sha256sum -c - 63 | RUN tar -xzf *.tar.gz 64 | 65 | WORKDIR /bitcoin-${BITCOIN_VERSION}${RC} 66 | 67 | RUN cmake -B build \ 68 | -DWITH_QRENCODE=OFF \ 69 | -DBUILD_TESTS=OFF \ 70 | -DWITH_ZMQ=ON \ 71 | -DENABLE_IPC=OFF \ 72 | -DCMAKE_INSTALL_PREFIX=${BITCOIN_PREFIX} 73 | RUN cmake --build build -j4 74 | RUN cmake --install build 75 | RUN strip ${BITCOIN_PREFIX}/bin/bitcoin-cli 76 | RUN strip ${BITCOIN_PREFIX}/bin/bitcoind 77 | 78 | # Build stage for compiled artifacts 79 | FROM alpine 80 | 81 | ARG UID=100 82 | ARG GID=101 83 | ARG RC 84 | ARG RC_DIR 85 | 86 | LABEL maintainer.0="João Fonseca (@joaopaulofonseca)" \ 87 | maintainer.1="Pedro Branco (@pedrobranco)" \ 88 | maintainer.2="Rui Marinho (@ruimarinho)" 89 | 90 | RUN addgroup bitcoin --gid ${GID} --system 91 | RUN adduser --uid ${UID} --system bitcoin --ingroup bitcoin 92 | RUN sed -i 's/http\:\/\/dl-cdn.alpinelinux.org/https\:\/\/alpine.global.ssl.fastly.net/g' /etc/apk/repositories 93 | RUN apk --no-cache add \ 94 | boost-filesystem \ 95 | boost-system \ 96 | boost-thread \ 97 | libevent \ 98 | libzmq \ 99 | shadow \ 100 | sqlite-dev \ 101 | su-exec 102 | 103 | # Special variables just for release candidates, both should be empty for stable 104 | # releases. 105 | ENV RC=${RC} 106 | ENV RC_DIR=${RC_DIR} 107 | 108 | ENV BITCOIN_DATA=/home/bitcoin/.bitcoin 109 | ENV BITCOIN_VERSION=30.0 110 | ENV BITCOIN_PREFIX=/opt/bitcoin-${BITCOIN_VERSION}${RC} 111 | ENV PATH=${BITCOIN_PREFIX}/bin:$PATH 112 | 113 | COPY --from=bitcoin-core /opt /opt 114 | COPY docker-entrypoint.sh /entrypoint.sh 115 | 116 | VOLUME ["/home/bitcoin/.bitcoin"] 117 | 118 | EXPOSE 8332 8333 18332 18333 18444 119 | 120 | ENTRYPOINT ["/entrypoint.sh"] 121 | 122 | RUN bitcoind -version | grep "Bitcoin Core daemon version v${BITCOIN_VERSION}" 123 | 124 | CMD ["bitcoind"] 125 | -------------------------------------------------------------------------------- /0.21/alpine/Dockerfile: -------------------------------------------------------------------------------- 1 | # Build stage for BerkeleyDB 2 | FROM alpine as berkeleydb 3 | 4 | RUN sed -i 's/http\:\/\/dl-cdn.alpinelinux.org/https\:\/\/alpine.global.ssl.fastly.net/g' /etc/apk/repositories 5 | RUN apk --no-cache add autoconf 6 | RUN apk --no-cache add automake 7 | RUN apk --no-cache add build-base 8 | RUN apk --no-cache add libressl 9 | 10 | ENV BERKELEYDB_VERSION=db-4.8.30.NC 11 | ENV BERKELEYDB_PREFIX=/opt/${BERKELEYDB_VERSION} 12 | 13 | RUN wget https://download.oracle.com/berkeley-db/${BERKELEYDB_VERSION}.tar.gz 14 | RUN tar -xzf *.tar.gz 15 | RUN sed s/__atomic_compare_exchange/__atomic_compare_exchange_db/g -i ${BERKELEYDB_VERSION}/dbinc/atomic.h 16 | RUN mkdir -p ${BERKELEYDB_PREFIX} 17 | 18 | WORKDIR /${BERKELEYDB_VERSION}/build_unix 19 | 20 | RUN ../dist/configure --enable-cxx --disable-shared --with-pic --prefix=${BERKELEYDB_PREFIX} 21 | RUN make -j4 22 | RUN make install 23 | RUN rm -rf ${BERKELEYDB_PREFIX}/docs 24 | 25 | # Build stage for Bitcoin Core 26 | FROM alpine as bitcoin-core 27 | 28 | COPY --from=berkeleydb /opt /opt 29 | 30 | RUN sed -i 's/http\:\/\/dl-cdn.alpinelinux.org/https\:\/\/alpine.global.ssl.fastly.net/g' /etc/apk/repositories 31 | RUN apk --no-cache add autoconf 32 | RUN apk --no-cache add automake 33 | RUN apk --no-cache add boost-dev 34 | RUN apk --no-cache add build-base 35 | RUN apk --no-cache add chrpath 36 | RUN apk --no-cache add file 37 | RUN apk --no-cache add gnupg 38 | RUN apk --no-cache add libevent-dev 39 | RUN apk --no-cache add libressl 40 | RUN apk --no-cache add libtool 41 | RUN apk --no-cache add linux-headers 42 | RUN apk --no-cache add sqlite-dev 43 | RUN apk --no-cache add zeromq-dev 44 | RUN set -ex \ 45 | && for key in \ 46 | 90C8019E36C2E964 \ 47 | ; do \ 48 | gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "$key" || \ 49 | gpg --batch --keyserver pgp.mit.edu --recv-keys "$key" || \ 50 | gpg --batch --keyserver keyserver.pgp.com --recv-keys "$key" || \ 51 | gpg --batch --keyserver ha.pool.sks-keyservers.net --recv-keys "$key" || \ 52 | gpg --batch --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys "$key" ; \ 53 | done 54 | 55 | ENV BITCOIN_VERSION=0.21.1 56 | ENV BITCOIN_PREFIX=/opt/bitcoin-${BITCOIN_VERSION} 57 | 58 | RUN wget https://bitcoincore.org/bin/bitcoin-core-${BITCOIN_VERSION}/SHA256SUMS.asc 59 | RUN wget https://bitcoincore.org/bin/bitcoin-core-${BITCOIN_VERSION}/bitcoin-${BITCOIN_VERSION}.tar.gz 60 | RUN gpg --verify SHA256SUMS.asc 61 | RUN grep " bitcoin-${BITCOIN_VERSION}.tar.gz\$" SHA256SUMS.asc | sha256sum -c - 62 | RUN tar -xzf *.tar.gz 63 | 64 | WORKDIR /bitcoin-${BITCOIN_VERSION} 65 | 66 | RUN sed -i '/AC_PREREQ/a\AR_FLAGS=cr' src/univalue/configure.ac 67 | RUN sed -i '/AX_PROG_CC_FOR_BUILD/a\AR_FLAGS=cr' src/secp256k1/configure.ac 68 | RUN sed -i s:sys/fcntl.h:fcntl.h: src/compat.h 69 | RUN ./autogen.sh 70 | RUN ./configure LDFLAGS=-L`ls -d /opt/db*`/lib/ CPPFLAGS=-I`ls -d /opt/db*`/include/ \ 71 | --prefix=${BITCOIN_PREFIX} \ 72 | --mandir=/usr/share/man \ 73 | --disable-tests \ 74 | --disable-bench \ 75 | --disable-ccache \ 76 | --with-gui=no \ 77 | --with-utils \ 78 | --with-libs \ 79 | --with-sqlite=yes \ 80 | --with-daemon 81 | RUN make -j4 82 | RUN make install 83 | RUN strip ${BITCOIN_PREFIX}/bin/bitcoin-cli 84 | RUN strip ${BITCOIN_PREFIX}/bin/bitcoin-tx 85 | RUN strip ${BITCOIN_PREFIX}/bin/bitcoind 86 | RUN strip ${BITCOIN_PREFIX}/lib/libbitcoinconsensus.a 87 | RUN strip ${BITCOIN_PREFIX}/lib/libbitcoinconsensus.so.0.0.0 88 | 89 | FROM alpine 90 | 91 | ARG UID=100 92 | ARG GID=101 93 | 94 | LABEL maintainer.0="João Fonseca (@joaopaulofonseca)" \ 95 | maintainer.1="Pedro Branco (@pedrobranco)" \ 96 | maintainer.2="Rui Marinho (@ruimarinho)" 97 | 98 | RUN addgroup -S bitcoin 99 | RUN adduser -G bitcoin -H -S bitcoin 100 | RUN sed -i 's/http\:\/\/dl-cdn.alpinelinux.org/https\:\/\/alpine.global.ssl.fastly.net/g' /etc/apk/repositories 101 | RUN apk --no-cache add \ 102 | boost-filesystem \ 103 | boost-system \ 104 | boost-thread \ 105 | sqlite-dev \ 106 | libevent \ 107 | libzmq \ 108 | shadow \ 109 | su-exec 110 | 111 | ENV BITCOIN_DATA=/home/bitcoin/.bitcoin 112 | ENV BITCOIN_VERSION=0.21.1 113 | ENV BITCOIN_PREFIX=/opt/bitcoin-${BITCOIN_VERSION} 114 | ENV PATH=${BITCOIN_PREFIX}/bin:$PATH 115 | 116 | COPY --from=bitcoin-core /opt /opt 117 | COPY docker-entrypoint.sh /entrypoint.sh 118 | 119 | VOLUME ["/home/bitcoin/.bitcoin"] 120 | 121 | EXPOSE 8332 8333 18332 18333 18444 122 | 123 | ENTRYPOINT ["/entrypoint.sh"] 124 | 125 | RUN bitcoind -version | grep "Bitcoin Core version v${BITCOIN_VERSION}" 126 | 127 | CMD ["bitcoind"] 128 | -------------------------------------------------------------------------------- /0.16/alpine/Dockerfile: -------------------------------------------------------------------------------- 1 | # Build stage for BerkeleyDB 2 | FROM alpine:3.9 as berkeleydb 3 | 4 | RUN sed -i 's/http\:\/\/dl-cdn.alpinelinux.org/https\:\/\/alpine.global.ssl.fastly.net/g' /etc/apk/repositories 5 | RUN apk --no-cache add autoconf 6 | RUN apk --no-cache add automake 7 | RUN apk --no-cache add build-base 8 | RUN apk --no-cache add libressl 9 | 10 | ENV BERKELEYDB_VERSION=db-4.8.30.NC 11 | ENV BERKELEYDB_PREFIX=/opt/${BERKELEYDB_VERSION} 12 | 13 | RUN wget https://download.oracle.com/berkeley-db/${BERKELEYDB_VERSION}.tar.gz 14 | RUN tar -xzf *.tar.gz 15 | RUN sed s/__atomic_compare_exchange/__atomic_compare_exchange_db/g -i ${BERKELEYDB_VERSION}/dbinc/atomic.h 16 | RUN mkdir -p ${BERKELEYDB_PREFIX} 17 | 18 | WORKDIR /${BERKELEYDB_VERSION}/build_unix 19 | 20 | RUN ../dist/configure --enable-cxx --disable-shared --with-pic --prefix=${BERKELEYDB_PREFIX} 21 | RUN make -j4 22 | RUN make install 23 | RUN rm -rf ${BERKELEYDB_PREFIX}/docs 24 | 25 | # Build stage for Bitcoin Core 26 | FROM alpine:3.9 as bitcoin-core 27 | 28 | COPY --from=berkeleydb /opt /opt 29 | 30 | RUN sed -i 's/http\:\/\/dl-cdn.alpinelinux.org/https\:\/\/alpine.global.ssl.fastly.net/g' /etc/apk/repositories 31 | RUN apk --no-cache add autoconf 32 | RUN apk --no-cache add automake 33 | RUN apk --no-cache add boost-dev 34 | RUN apk --no-cache add build-base 35 | RUN apk --no-cache add chrpath 36 | RUN apk --no-cache add file 37 | RUN apk --no-cache add gnupg 38 | RUN apk --no-cache add libevent-dev 39 | RUN apk --no-cache add libressl 40 | RUN apk --no-cache add libressl-dev 41 | RUN apk --no-cache add libtool 42 | RUN apk --no-cache add linux-headers 43 | RUN apk --no-cache add protobuf-dev 44 | RUN apk --no-cache add zeromq-dev 45 | RUN set -ex \ 46 | && for key in \ 47 | 90C8019E36C2E964 \ 48 | ; do \ 49 | gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "$key" || \ 50 | gpg --batch --keyserver pgp.mit.edu --recv-keys "$key" || \ 51 | gpg --batch --keyserver keyserver.pgp.com --recv-keys "$key" || \ 52 | gpg --batch --keyserver ha.pool.sks-keyservers.net --recv-keys "$key" || \ 53 | gpg --batch --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys "$key" ; \ 54 | done 55 | 56 | ENV BITCOIN_VERSION=0.16.3 57 | ENV BITCOIN_PREFIX=/opt/bitcoin-${BITCOIN_VERSION} 58 | 59 | RUN wget https://bitcoin.org/bin/bitcoin-core-${BITCOIN_VERSION}/SHA256SUMS.asc 60 | RUN wget https://bitcoin.org/bin/bitcoin-core-${BITCOIN_VERSION}/bitcoin-${BITCOIN_VERSION}.tar.gz 61 | RUN gpg --verify SHA256SUMS.asc 62 | RUN grep " bitcoin-${BITCOIN_VERSION}.tar.gz\$" SHA256SUMS.asc | sha256sum -c - 63 | RUN tar -xzf *.tar.gz 64 | 65 | WORKDIR /bitcoin-${BITCOIN_VERSION} 66 | 67 | RUN sed -i '/AC_PREREQ/a\AR_FLAGS=cr' src/univalue/configure.ac 68 | RUN sed -i '/AX_PROG_CC_FOR_BUILD/a\AR_FLAGS=cr' src/secp256k1/configure.ac 69 | RUN sed -i s:sys/fcntl.h:fcntl.h: src/compat.h 70 | RUN ./autogen.sh 71 | RUN ./configure LDFLAGS=-L`ls -d /opt/db*`/lib/ CPPFLAGS=-I`ls -d /opt/db*`/include/ \ 72 | --prefix=${BITCOIN_PREFIX} \ 73 | --mandir=/usr/share/man \ 74 | --disable-tests \ 75 | --disable-bench \ 76 | --disable-ccache \ 77 | --with-gui=no \ 78 | --with-utils \ 79 | --with-libs \ 80 | --with-daemon 81 | RUN make -j4 82 | RUN make install 83 | RUN strip ${BITCOIN_PREFIX}/bin/bitcoin-cli 84 | RUN strip ${BITCOIN_PREFIX}/bin/bitcoin-tx 85 | RUN strip ${BITCOIN_PREFIX}/bin/bitcoind 86 | RUN strip ${BITCOIN_PREFIX}/lib/libbitcoinconsensus.a 87 | RUN strip ${BITCOIN_PREFIX}/lib/libbitcoinconsensus.so.0.0.0 88 | 89 | # Build stage for compiled artifacts 90 | FROM alpine:3.9 91 | 92 | ARG UID=100 93 | ARG GID=101 94 | 95 | LABEL maintainer.0="João Fonseca (@joaopaulofonseca)" \ 96 | maintainer.1="Pedro Branco (@pedrobranco)" \ 97 | maintainer.2="Rui Marinho (@ruimarinho)" 98 | 99 | RUN addgroup -S bitcoin 100 | RUN adduser -G bitcoin -H -S bitcoin 101 | RUN sed -i 's/http\:\/\/dl-cdn.alpinelinux.org/https\:\/\/alpine.global.ssl.fastly.net/g' /etc/apk/repositories 102 | RUN apk --no-cache add \ 103 | boost \ 104 | boost-program_options \ 105 | libevent \ 106 | libressl \ 107 | libzmq \ 108 | shadow \ 109 | su-exec 110 | 111 | ENV BITCOIN_DATA=/home/bitcoin/.bitcoin 112 | ENV BITCOIN_VERSION=0.16.3 113 | ENV BITCOIN_PREFIX=/opt/bitcoin-${BITCOIN_VERSION} 114 | ENV PATH=${BITCOIN_PREFIX}/bin:$PATH 115 | 116 | COPY --from=bitcoin-core /opt /opt 117 | COPY docker-entrypoint.sh /entrypoint.sh 118 | 119 | VOLUME ["/home/bitcoin/.bitcoin"] 120 | 121 | EXPOSE 8332 8333 18332 18333 18444 122 | 123 | ENTRYPOINT ["/entrypoint.sh"] 124 | 125 | RUN bitcoind -version | grep "Bitcoin Core Daemon" 126 | 127 | CMD ["bitcoind"] 128 | -------------------------------------------------------------------------------- /0.17/alpine/Dockerfile: -------------------------------------------------------------------------------- 1 | # Build stage for BerkeleyDB 2 | FROM alpine:3.9 as berkeleydb 3 | 4 | RUN sed -i 's/http\:\/\/dl-cdn.alpinelinux.org/https\:\/\/alpine.global.ssl.fastly.net/g' /etc/apk/repositories 5 | RUN apk --no-cache add autoconf 6 | RUN apk --no-cache add automake 7 | RUN apk --no-cache add build-base 8 | RUN apk --no-cache add libressl 9 | 10 | ENV BERKELEYDB_VERSION=db-4.8.30.NC 11 | ENV BERKELEYDB_PREFIX=/opt/${BERKELEYDB_VERSION} 12 | 13 | RUN wget https://download.oracle.com/berkeley-db/${BERKELEYDB_VERSION}.tar.gz 14 | RUN tar -xzf *.tar.gz 15 | RUN sed s/__atomic_compare_exchange/__atomic_compare_exchange_db/g -i ${BERKELEYDB_VERSION}/dbinc/atomic.h 16 | RUN mkdir -p ${BERKELEYDB_PREFIX} 17 | 18 | WORKDIR /${BERKELEYDB_VERSION}/build_unix 19 | 20 | RUN ../dist/configure --enable-cxx --disable-shared --with-pic --prefix=${BERKELEYDB_PREFIX} 21 | RUN make -j4 22 | RUN make install 23 | RUN rm -rf ${BERKELEYDB_PREFIX}/docs 24 | 25 | # Build stage for Bitcoin Core 26 | FROM alpine:3.9 as bitcoin-core 27 | 28 | COPY --from=berkeleydb /opt /opt 29 | 30 | RUN sed -i 's/http\:\/\/dl-cdn.alpinelinux.org/https\:\/\/alpine.global.ssl.fastly.net/g' /etc/apk/repositories 31 | RUN apk --no-cache add autoconf 32 | RUN apk --no-cache add automake 33 | RUN apk --no-cache add boost-dev 34 | RUN apk --no-cache add build-base 35 | RUN apk --no-cache add chrpath 36 | RUN apk --no-cache add file 37 | RUN apk --no-cache add gnupg 38 | RUN apk --no-cache add libevent-dev 39 | RUN apk --no-cache add libressl 40 | RUN apk --no-cache add libressl-dev 41 | RUN apk --no-cache add libtool 42 | RUN apk --no-cache add linux-headers 43 | RUN apk --no-cache add protobuf-dev 44 | RUN apk --no-cache add zeromq-dev 45 | RUN set -ex \ 46 | && for key in \ 47 | 90C8019E36C2E964 \ 48 | ; do \ 49 | gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "$key" || \ 50 | gpg --batch --keyserver pgp.mit.edu --recv-keys "$key" || \ 51 | gpg --batch --keyserver keyserver.pgp.com --recv-keys "$key" || \ 52 | gpg --batch --keyserver ha.pool.sks-keyservers.net --recv-keys "$key" || \ 53 | gpg --batch --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys "$key" ; \ 54 | done 55 | 56 | ENV BITCOIN_VERSION=0.17.1 57 | ENV BITCOIN_PREFIX=/opt/bitcoin-${BITCOIN_VERSION} 58 | 59 | RUN wget https://bitcoin.org/bin/bitcoin-core-${BITCOIN_VERSION}/SHA256SUMS.asc 60 | RUN wget https://bitcoin.org/bin/bitcoin-core-${BITCOIN_VERSION}/bitcoin-${BITCOIN_VERSION}.tar.gz 61 | RUN gpg --verify SHA256SUMS.asc 62 | RUN grep " bitcoin-${BITCOIN_VERSION}.tar.gz\$" SHA256SUMS.asc | sha256sum -c - 63 | RUN tar -xzf *.tar.gz 64 | 65 | WORKDIR /bitcoin-${BITCOIN_VERSION} 66 | 67 | RUN sed -i '/AC_PREREQ/a\AR_FLAGS=cr' src/univalue/configure.ac 68 | RUN sed -i '/AX_PROG_CC_FOR_BUILD/a\AR_FLAGS=cr' src/secp256k1/configure.ac 69 | RUN sed -i s:sys/fcntl.h:fcntl.h: src/compat.h 70 | RUN ./autogen.sh 71 | RUN ./configure LDFLAGS=-L`ls -d /opt/db*`/lib/ CPPFLAGS=-I`ls -d /opt/db*`/include/ \ 72 | --prefix=${BITCOIN_PREFIX} \ 73 | --mandir=/usr/share/man \ 74 | --disable-tests \ 75 | --disable-bench \ 76 | --disable-ccache \ 77 | --with-gui=no \ 78 | --with-utils \ 79 | --with-libs \ 80 | --with-daemon 81 | RUN make -j4 82 | RUN make install 83 | RUN strip ${BITCOIN_PREFIX}/bin/bitcoin-cli 84 | RUN strip ${BITCOIN_PREFIX}/bin/bitcoin-tx 85 | RUN strip ${BITCOIN_PREFIX}/bin/bitcoind 86 | RUN strip ${BITCOIN_PREFIX}/lib/libbitcoinconsensus.a 87 | RUN strip ${BITCOIN_PREFIX}/lib/libbitcoinconsensus.so.0.0.0 88 | 89 | # Build stage for compiled artifacts 90 | FROM alpine:3.9 91 | 92 | ARG UID=100 93 | ARG GID=101 94 | 95 | LABEL maintainer.0="João Fonseca (@joaopaulofonseca)" \ 96 | maintainer.1="Pedro Branco (@pedrobranco)" \ 97 | maintainer.2="Rui Marinho (@ruimarinho)" 98 | 99 | RUN addgroup -S bitcoin 100 | RUN adduser -G bitcoin -H -S bitcoin 101 | RUN sed -i 's/http\:\/\/dl-cdn.alpinelinux.org/https\:\/\/alpine.global.ssl.fastly.net/g' /etc/apk/repositories 102 | RUN apk --no-cache add \ 103 | boost \ 104 | boost-program_options \ 105 | libevent \ 106 | libressl \ 107 | libzmq \ 108 | shadow \ 109 | su-exec 110 | 111 | ENV BITCOIN_DATA=/home/bitcoin/.bitcoin 112 | ENV BITCOIN_VERSION=0.17.1 113 | ENV BITCOIN_PREFIX=/opt/bitcoin-${BITCOIN_VERSION} 114 | ENV PATH=${BITCOIN_PREFIX}/bin:$PATH 115 | 116 | COPY --from=bitcoin-core /opt /opt 117 | COPY docker-entrypoint.sh /entrypoint.sh 118 | 119 | VOLUME ["/home/bitcoin/.bitcoin"] 120 | 121 | EXPOSE 8332 8333 18332 18333 18444 122 | 123 | ENTRYPOINT ["/entrypoint.sh"] 124 | 125 | RUN bitcoind -version | grep "Bitcoin Core Daemon" 126 | 127 | CMD ["bitcoind"] 128 | -------------------------------------------------------------------------------- /0.18/alpine/Dockerfile: -------------------------------------------------------------------------------- 1 | # Build stage for BerkeleyDB 2 | FROM alpine:3.9 as berkeleydb 3 | 4 | RUN sed -i 's/http\:\/\/dl-cdn.alpinelinux.org/https\:\/\/alpine.global.ssl.fastly.net/g' /etc/apk/repositories 5 | RUN apk --no-cache add autoconf 6 | RUN apk --no-cache add automake 7 | RUN apk --no-cache add build-base 8 | RUN apk --no-cache add libressl 9 | 10 | ENV BERKELEYDB_VERSION=db-4.8.30.NC 11 | ENV BERKELEYDB_PREFIX=/opt/${BERKELEYDB_VERSION} 12 | 13 | RUN wget https://download.oracle.com/berkeley-db/${BERKELEYDB_VERSION}.tar.gz 14 | RUN tar -xzf *.tar.gz 15 | RUN sed s/__atomic_compare_exchange/__atomic_compare_exchange_db/g -i ${BERKELEYDB_VERSION}/dbinc/atomic.h 16 | RUN mkdir -p ${BERKELEYDB_PREFIX} 17 | 18 | WORKDIR /${BERKELEYDB_VERSION}/build_unix 19 | 20 | RUN ../dist/configure --enable-cxx --disable-shared --with-pic --prefix=${BERKELEYDB_PREFIX} 21 | RUN make -j4 22 | RUN make install 23 | RUN rm -rf ${BERKELEYDB_PREFIX}/docs 24 | 25 | # Build stage for Bitcoin Core 26 | FROM alpine:3.9 as bitcoin-core 27 | 28 | COPY --from=berkeleydb /opt /opt 29 | 30 | RUN sed -i 's/http\:\/\/dl-cdn.alpinelinux.org/https\:\/\/alpine.global.ssl.fastly.net/g' /etc/apk/repositories 31 | RUN apk --no-cache add autoconf 32 | RUN apk --no-cache add automake 33 | RUN apk --no-cache add boost-dev 34 | RUN apk --no-cache add build-base 35 | RUN apk --no-cache add chrpath 36 | RUN apk --no-cache add file 37 | RUN apk --no-cache add gnupg 38 | RUN apk --no-cache add libevent-dev 39 | RUN apk --no-cache add libressl 40 | RUN apk --no-cache add libressl-dev 41 | RUN apk --no-cache add libtool 42 | RUN apk --no-cache add linux-headers 43 | RUN apk --no-cache add protobuf-dev 44 | RUN apk --no-cache add zeromq-dev 45 | RUN set -ex \ 46 | && for key in \ 47 | 90C8019E36C2E964 \ 48 | ; do \ 49 | gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "$key" || \ 50 | gpg --batch --keyserver pgp.mit.edu --recv-keys "$key" || \ 51 | gpg --batch --keyserver keyserver.pgp.com --recv-keys "$key" || \ 52 | gpg --batch --keyserver ha.pool.sks-keyservers.net --recv-keys "$key" || \ 53 | gpg --batch --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys "$key" ; \ 54 | done 55 | 56 | ENV BITCOIN_VERSION=0.18.1 57 | ENV BITCOIN_PREFIX=/opt/bitcoin-${BITCOIN_VERSION} 58 | 59 | RUN wget https://bitcoin.org/bin/bitcoin-core-${BITCOIN_VERSION}/SHA256SUMS.asc 60 | RUN wget https://bitcoin.org/bin/bitcoin-core-${BITCOIN_VERSION}/bitcoin-${BITCOIN_VERSION}.tar.gz 61 | RUN gpg --verify SHA256SUMS.asc 62 | RUN grep " bitcoin-${BITCOIN_VERSION}.tar.gz\$" SHA256SUMS.asc | sha256sum -c - 63 | RUN tar -xzf *.tar.gz 64 | 65 | WORKDIR /bitcoin-${BITCOIN_VERSION} 66 | 67 | RUN sed -i '/AC_PREREQ/a\AR_FLAGS=cr' src/univalue/configure.ac 68 | RUN sed -i '/AX_PROG_CC_FOR_BUILD/a\AR_FLAGS=cr' src/secp256k1/configure.ac 69 | RUN sed -i s:sys/fcntl.h:fcntl.h: src/compat.h 70 | RUN ./autogen.sh 71 | RUN ./configure LDFLAGS=-L`ls -d /opt/db*`/lib/ CPPFLAGS=-I`ls -d /opt/db*`/include/ \ 72 | --prefix=${BITCOIN_PREFIX} \ 73 | --mandir=/usr/share/man \ 74 | --disable-tests \ 75 | --disable-bench \ 76 | --disable-ccache \ 77 | --with-gui=no \ 78 | --with-utils \ 79 | --with-libs \ 80 | --with-daemon 81 | RUN make -j4 82 | RUN make install 83 | RUN strip ${BITCOIN_PREFIX}/bin/bitcoin-cli 84 | RUN strip ${BITCOIN_PREFIX}/bin/bitcoin-tx 85 | RUN strip ${BITCOIN_PREFIX}/bin/bitcoind 86 | RUN strip ${BITCOIN_PREFIX}/lib/libbitcoinconsensus.a 87 | RUN strip ${BITCOIN_PREFIX}/lib/libbitcoinconsensus.so.0.0.0 88 | 89 | # Build stage for compiled artifacts 90 | FROM alpine:3.9 91 | 92 | ARG UID=100 93 | ARG GID=101 94 | 95 | LABEL maintainer.0="João Fonseca (@joaopaulofonseca)" \ 96 | maintainer.1="Pedro Branco (@pedrobranco)" \ 97 | maintainer.2="Rui Marinho (@ruimarinho)" 98 | 99 | RUN addgroup -S bitcoin 100 | RUN adduser -G bitcoin -H -S bitcoin 101 | RUN sed -i 's/http\:\/\/dl-cdn.alpinelinux.org/https\:\/\/alpine.global.ssl.fastly.net/g' /etc/apk/repositories 102 | RUN apk --no-cache add \ 103 | boost \ 104 | boost-program_options \ 105 | libevent \ 106 | libressl \ 107 | libzmq \ 108 | shadow \ 109 | su-exec 110 | 111 | ENV BITCOIN_DATA=/home/bitcoin/.bitcoin 112 | ENV BITCOIN_VERSION=0.18.1 113 | ENV BITCOIN_PREFIX=/opt/bitcoin-${BITCOIN_VERSION} 114 | ENV PATH=${BITCOIN_PREFIX}/bin:$PATH 115 | 116 | COPY --from=bitcoin-core /opt /opt 117 | COPY docker-entrypoint.sh /entrypoint.sh 118 | 119 | VOLUME ["/home/bitcoin/.bitcoin"] 120 | 121 | EXPOSE 8332 8333 18332 18333 18444 122 | 123 | ENTRYPOINT ["/entrypoint.sh"] 124 | 125 | RUN bitcoind -version | grep "Bitcoin Core Daemon" 126 | 127 | CMD ["bitcoind"] 128 | -------------------------------------------------------------------------------- /0.11/alpine/Dockerfile: -------------------------------------------------------------------------------- 1 | # Build stage for BerkeleyDB 2 | FROM alpine:3.7 as berkeleydb 3 | 4 | RUN sed -i 's/http\:\/\/dl-cdn.alpinelinux.org/https\:\/\/alpine.global.ssl.fastly.net/g' /etc/apk/repositories 5 | RUN apk --no-cache add autoconf 6 | RUN apk --no-cache add automake 7 | RUN apk --no-cache add build-base 8 | RUN apk --no-cache add openssl 9 | 10 | ENV BERKELEYDB_VERSION=db-4.8.30.NC 11 | ENV BERKELEYDB_PREFIX=/opt/${BERKELEYDB_VERSION} 12 | 13 | RUN wget https://download.oracle.com/berkeley-db/${BERKELEYDB_VERSION}.tar.gz 14 | RUN tar -xzf *.tar.gz 15 | RUN sed s/__atomic_compare_exchange/__atomic_compare_exchange_db/g -i ${BERKELEYDB_VERSION}/dbinc/atomic.h 16 | RUN mkdir -p ${BERKELEYDB_PREFIX} 17 | 18 | WORKDIR /${BERKELEYDB_VERSION}/build_unix 19 | 20 | RUN ../dist/configure --enable-cxx --disable-shared --with-pic --prefix=${BERKELEYDB_PREFIX} 21 | RUN make -j4 22 | RUN make install 23 | RUN rm -rf ${BERKELEYDB_PREFIX}/docs 24 | 25 | # Build stage for Bitcoin Core 26 | FROM alpine:3.7 as bitcoin-core 27 | 28 | COPY --from=berkeleydb /opt /opt 29 | 30 | RUN sed -i 's/http\:\/\/dl-cdn.alpinelinux.org/https\:\/\/alpine.global.ssl.fastly.net/g' /etc/apk/repositories 31 | RUN apk --no-cache add autoconf 32 | RUN apk --no-cache add automake 33 | RUN apk --no-cache add boost-dev 34 | RUN apk --no-cache add build-base 35 | RUN apk --no-cache add ca-certificates 36 | RUN apk --no-cache add chrpath 37 | RUN apk --no-cache add curl 38 | RUN apk --no-cache add file 39 | RUN apk --no-cache add gnupg 40 | RUN apk --no-cache add libevent-dev 41 | RUN apk --no-cache add openssl 42 | RUN apk --no-cache add openssl-dev 43 | RUN apk --no-cache add libtool 44 | RUN apk --no-cache add linux-headers 45 | RUN apk --no-cache add protobuf-dev 46 | RUN apk --no-cache add zeromq-dev 47 | RUN set -ex \ 48 | && for key in \ 49 | 90C8019E36C2E964 \ 50 | ; do \ 51 | gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "$key" || \ 52 | gpg --batch --keyserver pgp.mit.edu --recv-keys "$key" || \ 53 | gpg --batch --keyserver keyserver.pgp.com --recv-keys "$key" || \ 54 | gpg --batch --keyserver ha.pool.sks-keyservers.net --recv-keys "$key" || \ 55 | gpg --batch --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys "$key" ; \ 56 | done 57 | 58 | # Workaround for Let's Encrypt DST Root CA X3 expiration. 59 | RUN sed -i 's#mozilla\/DST_Root_CA_X3.crt#!mozilla\/DST_Root_CA_X3.crt#g' /etc/ca-certificates.conf 60 | RUN update-ca-certificates 61 | 62 | ENV BITCOIN_VERSION=0.11.2 63 | ENV BITCOIN_PREFIX=/opt/bitcoin-${BITCOIN_VERSION} 64 | 65 | RUN curl -O https://bitcoin.org/bin/bitcoin-core-${BITCOIN_VERSION}/SHA256SUMS.asc 66 | RUN curl -O https://bitcoin.org/bin/bitcoin-core-${BITCOIN_VERSION}/bitcoin-${BITCOIN_VERSION}.tar.gz 67 | RUN gpg --verify SHA256SUMS.asc 68 | RUN grep " bitcoin-${BITCOIN_VERSION}.tar.gz\$" SHA256SUMS.asc | sha256sum -c - 69 | RUN tar -xzf *.tar.gz 70 | 71 | WORKDIR /bitcoin-${BITCOIN_VERSION} 72 | 73 | COPY patches/warnings.patch /warnings.patch 74 | 75 | RUN patch -p0 < /warnings.patch 76 | RUN ./autogen.sh 77 | RUN ./configure LDFLAGS=-L`ls -d /opt/db*`/lib/ CPPFLAGS=-I`ls -d /opt/db*`/include/ \ 78 | --prefix=${BITCOIN_PREFIX} \ 79 | --mandir=/usr/share/man \ 80 | --disable-tests \ 81 | --disable-bench \ 82 | --disable-ccache \ 83 | --with-gui=no \ 84 | --with-utils \ 85 | --with-libs \ 86 | --with-daemon 87 | RUN make -j4 88 | RUN make install 89 | RUN strip ${BITCOIN_PREFIX}/bin/bitcoin-cli 90 | RUN strip ${BITCOIN_PREFIX}/bin/bitcoin-tx 91 | RUN strip ${BITCOIN_PREFIX}/bin/bitcoind 92 | RUN strip ${BITCOIN_PREFIX}/lib/libbitcoinconsensus.a 93 | RUN strip ${BITCOIN_PREFIX}/lib/libbitcoinconsensus.so.0.0.0 94 | 95 | # Build stage for compiled artifacts 96 | FROM alpine:3.7 97 | 98 | LABEL maintainer.0="João Fonseca (@joaopaulofonseca)" \ 99 | maintainer.1="Pedro Branco (@pedrobranco)" \ 100 | maintainer.2="Rui Marinho (@ruimarinho)" 101 | 102 | RUN addgroup -S bitcoin 103 | RUN adduser -G bitcoin -H -S bitcoin 104 | RUN sed -i 's/http\:\/\/dl-cdn.alpinelinux.org/https\:\/\/alpine.global.ssl.fastly.net/g' /etc/apk/repositories 105 | RUN apk --no-cache add \ 106 | boost \ 107 | boost-program_options \ 108 | libevent \ 109 | openssl \ 110 | libzmq \ 111 | shadow \ 112 | su-exec 113 | 114 | ENV BITCOIN_DATA=/home/bitcoin/.bitcoin 115 | ENV BITCOIN_VERSION=0.11.2 116 | ENV BITCOIN_PREFIX=/opt/bitcoin-${BITCOIN_VERSION} 117 | ENV PATH=${BITCOIN_PREFIX}/bin:$PATH 118 | 119 | COPY --from=bitcoin-core /opt /opt 120 | COPY docker-entrypoint.sh /entrypoint.sh 121 | 122 | VOLUME ["/home/bitcoin/.bitcoin"] 123 | 124 | EXPOSE 8332 8333 18332 18333 18444 125 | 126 | ENTRYPOINT ["/entrypoint.sh"] 127 | 128 | CMD ["bitcoind"] 129 | -------------------------------------------------------------------------------- /.github/workflows/build.yaml: -------------------------------------------------------------------------------- 1 | name: build 2 | 3 | on: [push, pull_request] 4 | 5 | jobs: 6 | build: 7 | runs-on: ubuntu-latest 8 | strategy: 9 | matrix: 10 | version: 11 | - '30' 12 | - '30/alpine' 13 | - '29.1' 14 | - '29.1/alpine' 15 | - '29' 16 | - '29/alpine' 17 | - '28' 18 | - '28/alpine' 19 | - '27' 20 | - '27/alpine' 21 | - '26' 22 | - '26/alpine' 23 | fail-fast: false 24 | steps: 25 | - name: Set up Docker Buildx 26 | uses: crazy-max/ghaction-docker-buildx@v1 27 | 28 | - name: Checkout 29 | uses: actions/checkout@v2 30 | 31 | - name: Prepare Docker build 32 | id: prepare 33 | run: | 34 | function version { echo "$@" | awk -F. '{ printf("%d%03d%03d%03d\n", $1,$2,$3,$4); }'; } 35 | 36 | BITCOIN_VERSION=${{matrix.version}} 37 | LATEST_BITCOIN_MAJOR_VERSION=$(find . -type d -maxdepth 1 -not -path '*/\.*' | sort -n | tail -n 1 | cut -c 3-) 38 | PLATFORMS="linux/amd64" 39 | PUSH=false 40 | REPO=${{ github.repository_owner }}/bitcoin-core 41 | TAGS=() 42 | 43 | if [[ $GITHUB_REF == refs/tags/* ]]; then 44 | TAG=${GITHUB_REF#refs/tags/} 45 | PUSH=true 46 | 47 | if [[ ${BITCOIN_VERSION} == *"alpine"* ]]; then 48 | TAGS+=("$REPO:$TAG-alpine") 49 | else 50 | TAGS+=("$REPO:$TAG") 51 | fi 52 | 53 | if [ $(version ${TAG}) -ge $(version "22.0") ]; then 54 | TAG_MAJOR_MINOR=$(echo $TAG | cut -c -2)" 55 | else 56 | TAG_MAJOR_MINOR=$(echo $TAG | cut -c -4)" 57 | fi 58 | 59 | if [ $(version ${TAG_MAJOR_MINOR}) -ne $(version ${BITCOIN_VERSION}) ]; then 60 | echo "Skipping build of base image $BITCOIN_VERSION/ as ${TAG} is targeted at ${TAG_MAJOR_MINOR}/" 61 | exit 0 62 | fi 63 | else 64 | TAGS=("$REPO:${BITCOIN_VERSION/\//-}") 65 | 66 | if [ $(version ${BITCOIN_VERSION}) -ge $(version ${LATEST_BITCOIN_MAJOR_VERSION}) ]; then 67 | echo "Version $(version ${BITCOIN_VERSION}) is greater than or equal to $(version ${LATEST_BITCOIN_MAJOR_VERSION}), tagging as latest" 68 | 69 | if [[ ${BITCOIN_VERSION} != *"alpine"* ]]; then 70 | TAGS+=("$REPO:latest") 71 | else 72 | TAGS+=("$REPO:alpine") 73 | fi 74 | fi 75 | 76 | if [ $GITHUB_REF == "refs/heads/master" ]; then 77 | PUSH=true 78 | fi 79 | fi 80 | 81 | if [[ ${BITCOIN_VERSION} != *"alpine"* ]] && [ $(version ${BITCOIN_VERSION}) -ge $(version "0.19") ]; then 82 | PLATFORMS="linux/amd64,linux/arm/v7,linux/arm64" 83 | fi 84 | 85 | echo ::set-output name=build_date::$(date -u +'%Y-%m-%dT%H:%M:%SZ') 86 | echo ::set-output name=docker_platforms::${PLATFORMS} 87 | echo ::set-output name=docker_username::${{ secrets.DOCKER_USERNAME }} 88 | echo ::set-output name=push::${PUSH} 89 | echo ::set-output name=tags::${TAGS[@]} 90 | echo ::set-output name=build::true 91 | 92 | - if: ${{ steps.prepare.outputs.build }} == 'true' 93 | name: Login into Docker Hub 94 | uses: lightninglabs/gh-actions/login-action@2021.01.25.00 95 | with: 96 | username: ${{ secrets.DOCKER_USERNAME }} 97 | password: ${{ secrets.DOCKER_API_KEY }} 98 | 99 | - if: ${{ steps.prepare.outputs.build }} == 'true' 100 | name: Build Docker image 101 | run: | 102 | TAGS=(${{ steps.prepare.outputs.tags }}) 103 | 104 | echo "Build date: ${{ steps.prepare.outputs.build_date }}" 105 | echo "Docker platform: ${{ steps.prepare.outputs.docker_platforms }}" 106 | echo "Push: ${{ steps.prepare.outputs.push }}" 107 | echo "Tags: ${{ steps.prepare.outputs.tags }}" 108 | 109 | echo docker buildx build --platform ${{ steps.prepare.outputs.docker_platforms }} \ 110 | --output "type=image,push=${{steps.prepare.outputs.push}}" \ 111 | --progress=plain \ 112 | --build-arg "BUILD_DATE=${{ steps.prepare.outputs.build_date }}" \ 113 | --build-arg "VCS_REF=${GITHUB_SHA::8}" \ 114 | $(printf "%s" "${TAGS[@]/#/ --tag }" ) \ 115 | ${{ matrix.version }}/ 116 | 117 | docker buildx build --platform ${{ steps.prepare.outputs.docker_platforms }} \ 118 | --output "type=image,push=${{steps.prepare.outputs.push}}" \ 119 | --progress=plain \ 120 | --build-arg "BUILD_DATE=${{ steps.prepare.outputs.build_date }}" \ 121 | --build-arg "VCS_REF=${GITHUB_SHA::8}" \ 122 | $(printf "%s" "${TAGS[@]/#/ --tag }" ) \ 123 | ${{ matrix.version }}/ 124 | 125 | - if: ${{ steps.prepare.outputs.build }} == 'true' 126 | name: Clear Docker credentials 127 | run: | 128 | rm -f ${HOME}/.docker/config.json 129 | -------------------------------------------------------------------------------- /24/alpine/Dockerfile: -------------------------------------------------------------------------------- 1 | # Build stage for BerkeleyDB 2 | FROM alpine as berkeleydb 3 | 4 | RUN sed -i 's/http\:\/\/dl-cdn.alpinelinux.org/https\:\/\/alpine.global.ssl.fastly.net/g' /etc/apk/repositories 5 | RUN apk --no-cache add autoconf 6 | RUN apk --no-cache add automake 7 | RUN apk --no-cache add build-base 8 | RUN apk --no-cache add libressl 9 | 10 | ENV BERKELEYDB_VERSION=db-4.8.30.NC 11 | ENV BERKELEYDB_PREFIX=/opt/${BERKELEYDB_VERSION} 12 | 13 | RUN wget https://download.oracle.com/berkeley-db/${BERKELEYDB_VERSION}.tar.gz 14 | RUN tar -xzf *.tar.gz 15 | RUN sed s/__atomic_compare_exchange/__atomic_compare_exchange_db/g -i ${BERKELEYDB_VERSION}/dbinc/atomic.h 16 | RUN mkdir -p ${BERKELEYDB_PREFIX} 17 | 18 | WORKDIR /${BERKELEYDB_VERSION}/build_unix 19 | 20 | RUN ../dist/configure --enable-cxx --disable-shared --with-pic --prefix=${BERKELEYDB_PREFIX} --build=aarch64-unknown-linux-gnu 21 | RUN make -j4 22 | RUN make install 23 | RUN rm -rf ${BERKELEYDB_PREFIX}/docs 24 | 25 | # Build stage for Bitcoin Core 26 | FROM alpine as bitcoin-core 27 | 28 | COPY --from=berkeleydb /opt /opt 29 | 30 | RUN sed -i 's/http\:\/\/dl-cdn.alpinelinux.org/https\:\/\/alpine.global.ssl.fastly.net/g' /etc/apk/repositories 31 | RUN apk --no-cache add autoconf 32 | RUN apk --no-cache add automake 33 | RUN apk --no-cache add boost-dev 34 | RUN apk --no-cache add build-base 35 | RUN apk --no-cache add chrpath 36 | RUN apk --no-cache add file 37 | RUN apk --no-cache add gnupg 38 | RUN apk --no-cache add libevent-dev 39 | RUN apk --no-cache add libressl 40 | RUN apk --no-cache add libtool 41 | RUN apk --no-cache add linux-headers 42 | RUN apk --no-cache add sqlite-dev 43 | RUN apk --no-cache add zeromq-dev 44 | RUN set -ex \ 45 | && for key in \ 46 | 152812300785C96444D3334D17565732E08E5E41 \ 47 | 0AD83877C1F0CD1EE9BD660AD7CC770B81FD22A8 \ 48 | 590B7292695AFFA5B672CBB2E13FC145CD3F4304 \ 49 | CFB16E21C950F67FA95E558F2EEB9F5CC09526C1 \ 50 | F4FC70F07310028424EFC20A8E4256593F177720 \ 51 | D1DBF2C4B96F2DEBF4C16654410108112E7EA81F \ 52 | 287AE4CA1187C68C08B49CB2D11BD4F33F1DB499 \ 53 | 9DEAE0DC7063249FB05474681E4AED62986CD25D \ 54 | 3EB0DEE6004A13BE5A0CC758BF2978B068054311 \ 55 | ED9BDF7AD6A55E232E84524257FF9BDBCC301009 \ 56 | 28E72909F1717FE9607754F8A7BEB2621678D37D \ 57 | 79D00BAC68B56D422F945A8F8E3A8F3247DBCBBF \ 58 | ; do \ 59 | gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "$key" || \ 60 | gpg --batch --keyserver keys.openpgp.org --recv-keys "$key" || \ 61 | gpg --batch --keyserver keyserver.pgp.com --recv-keys "$key" || \ 62 | gpg --batch --keyserver ha.pool.sks-keyservers.net --recv-keys "$key" || \ 63 | gpg --batch --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys "$key" ; \ 64 | done 65 | 66 | ENV BITCOIN_VERSION=24.0.1 67 | ENV BITCOIN_PREFIX=/opt/bitcoin-${BITCOIN_VERSION} 68 | 69 | RUN wget https://bitcoincore.org/bin/bitcoin-core-${BITCOIN_VERSION}/SHA256SUMS 70 | RUN wget https://bitcoincore.org/bin/bitcoin-core-${BITCOIN_VERSION}/SHA256SUMS.asc 71 | RUN wget https://bitcoincore.org/bin/bitcoin-core-${BITCOIN_VERSION}/bitcoin-${BITCOIN_VERSION}.tar.gz 72 | RUN gpg --verify SHA256SUMS.asc SHA256SUMS 73 | RUN grep " bitcoin-${BITCOIN_VERSION}.tar.gz\$" SHA256SUMS | sha256sum -c - 74 | RUN tar -xzf *.tar.gz 75 | 76 | WORKDIR /bitcoin-${BITCOIN_VERSION} 77 | 78 | RUN sed -i s:sys/fcntl.h:fcntl.h: src/compat/compat.h 79 | RUN ./autogen.sh 80 | RUN ./configure LDFLAGS=-L`ls -d /opt/db*`/lib/ CPPFLAGS=-I`ls -d /opt/db*`/include/ \ 81 | --prefix=${BITCOIN_PREFIX} \ 82 | --mandir=/usr/share/man \ 83 | --disable-tests \ 84 | --disable-bench \ 85 | --disable-ccache \ 86 | --with-gui=no \ 87 | --with-utils \ 88 | --with-libs \ 89 | --with-sqlite=yes \ 90 | --with-daemon 91 | RUN make -j4 92 | RUN make install 93 | RUN strip ${BITCOIN_PREFIX}/bin/bitcoin-cli 94 | RUN strip ${BITCOIN_PREFIX}/bin/bitcoin-tx 95 | RUN strip ${BITCOIN_PREFIX}/bin/bitcoind 96 | RUN strip ${BITCOIN_PREFIX}/lib/libbitcoinconsensus.a 97 | RUN strip ${BITCOIN_PREFIX}/lib/libbitcoinconsensus.so.0.0.0 98 | 99 | # Build stage for compiled artifacts 100 | FROM alpine 101 | 102 | ARG UID=100 103 | ARG GID=101 104 | 105 | LABEL maintainer.0="João Fonseca (@joaopaulofonseca)" \ 106 | maintainer.1="Pedro Branco (@pedrobranco)" \ 107 | maintainer.2="Rui Marinho (@ruimarinho)" 108 | 109 | RUN addgroup bitcoin --gid ${GID} --system 110 | RUN adduser --uid ${UID} --system bitcoin --ingroup bitcoin 111 | RUN sed -i 's/http\:\/\/dl-cdn.alpinelinux.org/https\:\/\/alpine.global.ssl.fastly.net/g' /etc/apk/repositories 112 | RUN apk --no-cache add \ 113 | boost-filesystem \ 114 | boost-system \ 115 | boost-thread \ 116 | libevent \ 117 | libzmq \ 118 | shadow \ 119 | sqlite-dev \ 120 | su-exec 121 | 122 | ENV BITCOIN_DATA=/home/bitcoin/.bitcoin 123 | ENV BITCOIN_VERSION=24.0.1 124 | ENV BITCOIN_PREFIX=/opt/bitcoin-${BITCOIN_VERSION} 125 | ENV PATH=${BITCOIN_PREFIX}/bin:$PATH 126 | 127 | COPY --from=bitcoin-core /opt /opt 128 | COPY docker-entrypoint.sh /entrypoint.sh 129 | 130 | VOLUME ["/home/bitcoin/.bitcoin"] 131 | 132 | EXPOSE 8332 8333 18332 18333 18444 133 | 134 | ENTRYPOINT ["/entrypoint.sh"] 135 | 136 | RUN bitcoind -version | grep "Bitcoin Core version v${BITCOIN_VERSION}" 137 | 138 | CMD ["bitcoind"] 139 | -------------------------------------------------------------------------------- /28/alpine/Dockerfile: -------------------------------------------------------------------------------- 1 | # Build stage for BerkeleyDB 2 | FROM alpine as berkeleydb 3 | 4 | RUN sed -i 's/http\:\/\/dl-cdn.alpinelinux.org/https\:\/\/alpine.global.ssl.fastly.net/g' /etc/apk/repositories 5 | RUN apk --no-cache add \ 6 | autoconf \ 7 | automake \ 8 | build-base \ 9 | libressl \ 10 | linux-headers \ 11 | wget \ 12 | tar 13 | 14 | ENV BERKELEYDB_VERSION=db-4.8.30.NC 15 | ENV BERKELEYDB_PREFIX=/opt/${BERKELEYDB_VERSION} 16 | 17 | RUN wget https://download.oracle.com/berkeley-db/${BERKELEYDB_VERSION}.tar.gz 18 | RUN tar -xzf *.tar.gz 19 | RUN sed s/__atomic_compare_exchange/__atomic_compare_exchange_db/g -i ${BERKELEYDB_VERSION}/dbinc/atomic.h 20 | RUN mkdir -p ${BERKELEYDB_PREFIX} 21 | 22 | WORKDIR /${BERKELEYDB_VERSION}/build_unix 23 | 24 | RUN ../dist/configure --enable-cxx --disable-shared --with-pic --with-mutex=POSIX/pthreads --prefix=${BERKELEYDB_PREFIX} --build=aarch64-unknown-linux-gnu 25 | RUN make -j4 26 | RUN make install 27 | RUN rm -rf ${BERKELEYDB_PREFIX}/docs 28 | 29 | # Build stage for Bitcoin Core 30 | FROM alpine as bitcoin-core 31 | 32 | COPY --from=berkeleydb /opt /opt 33 | 34 | ENV GNUPGHOME=/tmp/gnupg 35 | 36 | RUN sed -i 's/http\:\/\/dl-cdn.alpinelinux.org/https\:\/\/alpine.global.ssl.fastly.net/g' /etc/apk/repositories 37 | RUN apk --no-cache add autoconf 38 | RUN apk --no-cache add automake 39 | RUN apk --no-cache add boost-dev 40 | RUN apk --no-cache add build-base 41 | RUN apk --no-cache add chrpath 42 | RUN apk --no-cache add file 43 | RUN apk --no-cache add gnupg 44 | RUN apk --no-cache add libevent-dev 45 | RUN apk --no-cache add libressl 46 | RUN apk --no-cache add libtool 47 | RUN apk --no-cache add linux-headers 48 | RUN apk --no-cache add sqlite-dev 49 | RUN apk --no-cache add zeromq-dev 50 | RUN mkdir -p ${GNUPGHOME} 51 | RUN set -ex \ 52 | && for key in \ 53 | 101598DC823C1B5F9A6624ABA5E0907A0380E6C3 \ 54 | 6A8F9C266528E25AEB1D7731C2371D91CB716EA7 \ 55 | 2840EAABF4BC9F0FFD716AFAFBAFCC46DE2D3FE2 \ 56 | E86AE73439625BBEE306AAE6B66D427F873CB1A3 \ 57 | A0083660F235A27000CD3C81CE6EC49945C17EA6 \ 58 | F19F5FF2B0589EC341220045BA03F4DBE0C63FB4 \ 59 | 637DB1E23370F84AFF88CCE03152347D07DA627C \ 60 | ED9BDF7AD6A55E232E84524257FF9BDBCC301009 \ 61 | CFB16E21C950F67FA95E558F2EEB9F5CC09526C1 \ 62 | 152812300785C96444D3334D17565732E08E5E41 \ 63 | C388F6961FB972A95678E327F62711DBDCA8AE56 \ 64 | 9DEAE0DC7063249FB05474681E4AED62986CD25D \ 65 | D1DBF2C4B96F2DEBF4C16654410108112E7EA81F \ 66 | ; do \ 67 | gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "$key" || \ 68 | gpg --batch --keyserver keys.openpgp.org --recv-keys "$key" || \ 69 | gpg --batch --keyserver keyserver.pgp.com --recv-keys "$key" || \ 70 | gpg --batch --keyserver ha.pool.sks-keyservers.net --recv-keys "$key" || \ 71 | gpg --batch --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys "$key" ; \ 72 | done 73 | 74 | ENV BITCOIN_VERSION=28.0 75 | ENV BITCOIN_PREFIX=/opt/bitcoin-${BITCOIN_VERSION} 76 | 77 | RUN wget https://bitcoincore.org/bin/bitcoin-core-${BITCOIN_VERSION}/SHA256SUMS 78 | RUN wget https://bitcoincore.org/bin/bitcoin-core-${BITCOIN_VERSION}/SHA256SUMS.asc 79 | RUN wget https://bitcoincore.org/bin/bitcoin-core-${BITCOIN_VERSION}/bitcoin-${BITCOIN_VERSION}.tar.gz 80 | RUN gpg --verify SHA256SUMS.asc SHA256SUMS 81 | RUN grep " bitcoin-${BITCOIN_VERSION}.tar.gz\$" SHA256SUMS | sha256sum -c - 82 | RUN tar -xzf *.tar.gz 83 | 84 | WORKDIR /bitcoin-${BITCOIN_VERSION} 85 | 86 | RUN sed -i s:sys/fcntl.h:fcntl.h: src/compat/compat.h 87 | RUN ./autogen.sh 88 | RUN ./configure LDFLAGS=-L`ls -d /opt/db*`/lib/ CPPFLAGS=-I`ls -d /opt/db*`/include/ \ 89 | --prefix=${BITCOIN_PREFIX} \ 90 | --mandir=/usr/share/man \ 91 | --disable-tests \ 92 | --disable-bench \ 93 | --disable-ccache \ 94 | --with-gui=no \ 95 | --with-utils \ 96 | --with-libs \ 97 | --with-sqlite=yes \ 98 | --with-daemon 99 | RUN make -j4 100 | RUN make install 101 | RUN strip ${BITCOIN_PREFIX}/bin/bitcoin-cli 102 | RUN strip ${BITCOIN_PREFIX}/bin/bitcoin-tx 103 | RUN strip ${BITCOIN_PREFIX}/bin/bitcoind 104 | 105 | # Build stage for compiled artifacts 106 | FROM alpine 107 | 108 | ARG UID=100 109 | ARG GID=101 110 | 111 | LABEL maintainer.0="João Fonseca (@joaopaulofonseca)" \ 112 | maintainer.1="Pedro Branco (@pedrobranco)" \ 113 | maintainer.2="Rui Marinho (@ruimarinho)" 114 | 115 | RUN addgroup bitcoin --gid ${GID} --system 116 | RUN adduser --uid ${UID} --system bitcoin --ingroup bitcoin 117 | RUN sed -i 's/http\:\/\/dl-cdn.alpinelinux.org/https\:\/\/alpine.global.ssl.fastly.net/g' /etc/apk/repositories 118 | RUN apk --no-cache add \ 119 | boost-filesystem \ 120 | boost-system \ 121 | boost-thread \ 122 | libevent \ 123 | libzmq \ 124 | shadow \ 125 | sqlite-dev \ 126 | su-exec 127 | 128 | ENV BITCOIN_DATA=/home/bitcoin/.bitcoin 129 | ENV BITCOIN_VERSION=28.0 130 | ENV BITCOIN_PREFIX=/opt/bitcoin-${BITCOIN_VERSION} 131 | ENV PATH=${BITCOIN_PREFIX}/bin:$PATH 132 | 133 | COPY --from=bitcoin-core /opt /opt 134 | COPY docker-entrypoint.sh /entrypoint.sh 135 | 136 | VOLUME ["/home/bitcoin/.bitcoin"] 137 | 138 | EXPOSE 8332 8333 18332 18333 18444 139 | 140 | ENTRYPOINT ["/entrypoint.sh"] 141 | 142 | RUN bitcoind -version | grep "Bitcoin Core version v${BITCOIN_VERSION}" 143 | 144 | CMD ["bitcoind"] 145 | -------------------------------------------------------------------------------- /25/alpine/Dockerfile: -------------------------------------------------------------------------------- 1 | # Build stage for BerkeleyDB 2 | FROM alpine as berkeleydb 3 | 4 | RUN sed -i 's/http\:\/\/dl-cdn.alpinelinux.org/https\:\/\/alpine.global.ssl.fastly.net/g' /etc/apk/repositories 5 | RUN apk --no-cache add autoconf 6 | RUN apk --no-cache add automake 7 | RUN apk --no-cache add build-base 8 | RUN apk --no-cache add libressl 9 | 10 | ENV BERKELEYDB_VERSION=db-4.8.30.NC 11 | ENV BERKELEYDB_PREFIX=/opt/${BERKELEYDB_VERSION} 12 | 13 | RUN wget https://download.oracle.com/berkeley-db/${BERKELEYDB_VERSION}.tar.gz 14 | RUN tar -xzf *.tar.gz 15 | RUN sed s/__atomic_compare_exchange/__atomic_compare_exchange_db/g -i ${BERKELEYDB_VERSION}/dbinc/atomic.h 16 | RUN mkdir -p ${BERKELEYDB_PREFIX} 17 | 18 | WORKDIR /${BERKELEYDB_VERSION}/build_unix 19 | 20 | RUN ../dist/configure --enable-cxx --disable-shared --with-pic --prefix=${BERKELEYDB_PREFIX} --build=aarch64-unknown-linux-gnu 21 | RUN make -j4 22 | RUN make install 23 | RUN rm -rf ${BERKELEYDB_PREFIX}/docs 24 | 25 | # Build stage for Bitcoin Core 26 | FROM alpine as bitcoin-core 27 | 28 | COPY --from=berkeleydb /opt /opt 29 | 30 | RUN sed -i 's/http\:\/\/dl-cdn.alpinelinux.org/https\:\/\/alpine.global.ssl.fastly.net/g' /etc/apk/repositories 31 | RUN apk --no-cache add autoconf 32 | RUN apk --no-cache add automake 33 | RUN apk --no-cache add boost-dev 34 | RUN apk --no-cache add build-base 35 | RUN apk --no-cache add chrpath 36 | RUN apk --no-cache add file 37 | RUN apk --no-cache add gnupg 38 | RUN apk --no-cache add libevent-dev 39 | RUN apk --no-cache add libressl 40 | RUN apk --no-cache add libtool 41 | RUN apk --no-cache add linux-headers 42 | RUN apk --no-cache add sqlite-dev 43 | RUN apk --no-cache add zeromq-dev 44 | RUN set -ex \ 45 | && for key in \ 46 | 101598DC823C1B5F9A6624ABA5E0907A0380E6C3 \ 47 | F2CFC4ABD0B99D837EEBB7D09B79B45691DB4173 \ 48 | 152812300785C96444D3334D17565732E08E5E41 \ 49 | 0AD83877C1F0CD1EE9BD660AD7CC770B81FD22A8 \ 50 | C060A6635913D98A3587D7DB1C2491FFEB0EF770 \ 51 | CFB16E21C950F67FA95E558F2EEB9F5CC09526C1 \ 52 | F19F5FF2B0589EC341220045BA03F4DBE0C63FB4 \ 53 | F4FC70F07310028424EFC20A8E4256593F177720 \ 54 | D1DBF2C4B96F2DEBF4C16654410108112E7EA81F \ 55 | 287AE4CA1187C68C08B49CB2D11BD4F33F1DB499 \ 56 | 9DEAE0DC7063249FB05474681E4AED62986CD25D \ 57 | 6A8F9C266528E25AEB1D7731C2371D91CB716EA7 \ 58 | 28E72909F1717FE9607754F8A7BEB2621678D37D \ 59 | ; do \ 60 | gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "$key" || \ 61 | gpg --batch --keyserver keys.openpgp.org --recv-keys "$key" || \ 62 | gpg --batch --keyserver keyserver.pgp.com --recv-keys "$key" || \ 63 | gpg --batch --keyserver ha.pool.sks-keyservers.net --recv-keys "$key" || \ 64 | gpg --batch --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys "$key" ; \ 65 | done 66 | 67 | ENV BITCOIN_VERSION=25.0 68 | ENV BITCOIN_PREFIX=/opt/bitcoin-${BITCOIN_VERSION} 69 | 70 | RUN wget https://bitcoincore.org/bin/bitcoin-core-${BITCOIN_VERSION}/SHA256SUMS 71 | RUN wget https://bitcoincore.org/bin/bitcoin-core-${BITCOIN_VERSION}/SHA256SUMS.asc 72 | RUN wget https://bitcoincore.org/bin/bitcoin-core-${BITCOIN_VERSION}/bitcoin-${BITCOIN_VERSION}.tar.gz 73 | RUN gpg --verify SHA256SUMS.asc SHA256SUMS 74 | RUN grep " bitcoin-${BITCOIN_VERSION}.tar.gz\$" SHA256SUMS | sha256sum -c - 75 | RUN tar -xzf *.tar.gz 76 | 77 | WORKDIR /bitcoin-${BITCOIN_VERSION} 78 | 79 | RUN sed -i s:sys/fcntl.h:fcntl.h: src/compat/compat.h 80 | RUN ./autogen.sh 81 | RUN ./configure LDFLAGS=-L`ls -d /opt/db*`/lib/ CPPFLAGS=-I`ls -d /opt/db*`/include/ \ 82 | --prefix=${BITCOIN_PREFIX} \ 83 | --mandir=/usr/share/man \ 84 | --disable-tests \ 85 | --disable-bench \ 86 | --disable-ccache \ 87 | --with-gui=no \ 88 | --with-utils \ 89 | --with-libs \ 90 | --with-sqlite=yes \ 91 | --with-daemon 92 | RUN make -j4 93 | RUN make install 94 | RUN strip ${BITCOIN_PREFIX}/bin/bitcoin-cli 95 | RUN strip ${BITCOIN_PREFIX}/bin/bitcoin-tx 96 | RUN strip ${BITCOIN_PREFIX}/bin/bitcoind 97 | RUN strip ${BITCOIN_PREFIX}/lib/libbitcoinconsensus.a 98 | RUN strip ${BITCOIN_PREFIX}/lib/libbitcoinconsensus.so.0.0.0 99 | 100 | # Build stage for compiled artifacts 101 | FROM alpine 102 | 103 | ARG UID=100 104 | ARG GID=101 105 | 106 | LABEL maintainer.0="João Fonseca (@joaopaulofonseca)" \ 107 | maintainer.1="Pedro Branco (@pedrobranco)" \ 108 | maintainer.2="Rui Marinho (@ruimarinho)" 109 | 110 | RUN addgroup bitcoin --gid ${GID} --system 111 | RUN adduser --uid ${UID} --system bitcoin --ingroup bitcoin 112 | RUN sed -i 's/http\:\/\/dl-cdn.alpinelinux.org/https\:\/\/alpine.global.ssl.fastly.net/g' /etc/apk/repositories 113 | RUN apk --no-cache add \ 114 | boost-filesystem \ 115 | boost-system \ 116 | boost-thread \ 117 | libevent \ 118 | libzmq \ 119 | shadow \ 120 | sqlite-dev \ 121 | su-exec 122 | 123 | ENV BITCOIN_DATA=/home/bitcoin/.bitcoin 124 | ENV BITCOIN_VERSION=25.0 125 | ENV BITCOIN_PREFIX=/opt/bitcoin-${BITCOIN_VERSION} 126 | ENV PATH=${BITCOIN_PREFIX}/bin:$PATH 127 | 128 | COPY --from=bitcoin-core /opt /opt 129 | COPY docker-entrypoint.sh /entrypoint.sh 130 | 131 | VOLUME ["/home/bitcoin/.bitcoin"] 132 | 133 | EXPOSE 8332 8333 18332 18333 18444 134 | 135 | ENTRYPOINT ["/entrypoint.sh"] 136 | 137 | RUN bitcoind -version | grep "Bitcoin Core version v${BITCOIN_VERSION}" 138 | 139 | CMD ["bitcoind"] 140 | -------------------------------------------------------------------------------- /22/alpine/Dockerfile: -------------------------------------------------------------------------------- 1 | # Build stage for BerkeleyDB 2 | FROM alpine as berkeleydb 3 | 4 | RUN sed -i 's/http\:\/\/dl-cdn.alpinelinux.org/https\:\/\/alpine.global.ssl.fastly.net/g' /etc/apk/repositories 5 | RUN apk --no-cache add autoconf 6 | RUN apk --no-cache add automake 7 | RUN apk --no-cache add build-base 8 | RUN apk --no-cache add libressl 9 | 10 | ENV BERKELEYDB_VERSION=db-4.8.30.NC 11 | ENV BERKELEYDB_PREFIX=/opt/${BERKELEYDB_VERSION} 12 | 13 | RUN wget https://download.oracle.com/berkeley-db/${BERKELEYDB_VERSION}.tar.gz 14 | RUN tar -xzf *.tar.gz 15 | RUN sed s/__atomic_compare_exchange/__atomic_compare_exchange_db/g -i ${BERKELEYDB_VERSION}/dbinc/atomic.h 16 | RUN mkdir -p ${BERKELEYDB_PREFIX} 17 | 18 | WORKDIR /${BERKELEYDB_VERSION}/build_unix 19 | 20 | RUN ../dist/configure --enable-cxx --disable-shared --with-pic --prefix=${BERKELEYDB_PREFIX} 21 | RUN make -j4 22 | RUN make install 23 | RUN rm -rf ${BERKELEYDB_PREFIX}/docs 24 | 25 | # Build stage for Bitcoin Core 26 | FROM alpine as bitcoin-core 27 | 28 | COPY --from=berkeleydb /opt /opt 29 | 30 | RUN sed -i 's/http\:\/\/dl-cdn.alpinelinux.org/https\:\/\/alpine.global.ssl.fastly.net/g' /etc/apk/repositories 31 | RUN apk --no-cache add autoconf 32 | RUN apk --no-cache add automake 33 | RUN apk --no-cache add boost-dev 34 | RUN apk --no-cache add build-base 35 | RUN apk --no-cache add chrpath 36 | RUN apk --no-cache add file 37 | RUN apk --no-cache add gnupg 38 | RUN apk --no-cache add libevent-dev 39 | RUN apk --no-cache add libressl 40 | RUN apk --no-cache add libtool 41 | RUN apk --no-cache add linux-headers 42 | RUN apk --no-cache add sqlite-dev 43 | RUN apk --no-cache add zeromq-dev 44 | RUN set -ex \ 45 | && for key in \ 46 | 0CCBAAFD76A2ECE2CCD3141DE2FFD5B1D88CA97D \ 47 | 152812300785C96444D3334D17565732E08E5E41 \ 48 | 0AD83877C1F0CD1EE9BD660AD7CC770B81FD22A8 \ 49 | 590B7292695AFFA5B672CBB2E13FC145CD3F4304 \ 50 | 28F5900B1BB5D1A4B6B6D1A9ED357015286A333D \ 51 | 637DB1E23370F84AFF88CCE03152347D07DA627C \ 52 | CFB16E21C950F67FA95E558F2EEB9F5CC09526C1 \ 53 | 6E01EEC9656903B0542B8F1003DB6322267C373B \ 54 | D1DBF2C4B96F2DEBF4C16654410108112E7EA81F \ 55 | 82921A4B88FD454B7EB8CE3C796C4109063D4EAF \ 56 | 9DEAE0DC7063249FB05474681E4AED62986CD25D \ 57 | 9D3CC86A72F8494342EA5FD10A41BDC3F4FAFF1C \ 58 | 74E2DEF5D77260B98BC19438099BAD163C70FBFA \ 59 | ; do \ 60 | gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "$key" || \ 61 | gpg --batch --keyserver keys.openpgp.org --recv-keys "$key" || \ 62 | gpg --batch --keyserver keyserver.pgp.com --recv-keys "$key" || \ 63 | gpg --batch --keyserver ha.pool.sks-keyservers.net --recv-keys "$key" || \ 64 | gpg --batch --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys "$key" ; \ 65 | done 66 | 67 | ENV BITCOIN_VERSION=22.0 68 | ENV BITCOIN_PREFIX=/opt/bitcoin-${BITCOIN_VERSION} 69 | 70 | RUN wget https://bitcoincore.org/bin/bitcoin-core-${BITCOIN_VERSION}/SHA256SUMS 71 | RUN wget https://bitcoincore.org/bin/bitcoin-core-${BITCOIN_VERSION}/SHA256SUMS.asc 72 | RUN wget https://bitcoincore.org/bin/bitcoin-core-${BITCOIN_VERSION}/bitcoin-${BITCOIN_VERSION}.tar.gz 73 | RUN gpg --verify SHA256SUMS.asc SHA256SUMS 74 | RUN grep " bitcoin-${BITCOIN_VERSION}.tar.gz\$" SHA256SUMS | sha256sum -c - 75 | RUN tar -xzf *.tar.gz 76 | 77 | WORKDIR /bitcoin-${BITCOIN_VERSION} 78 | 79 | RUN sed -i '/AC_PREREQ/a\AR_FLAGS=cr' src/univalue/configure.ac 80 | RUN sed -i '/AX_PROG_CC_FOR_BUILD/a\AR_FLAGS=cr' src/secp256k1/configure.ac 81 | RUN sed -i s:sys/fcntl.h:fcntl.h: src/compat.h 82 | RUN ./autogen.sh 83 | RUN ./configure LDFLAGS=-L`ls -d /opt/db*`/lib/ CPPFLAGS=-I`ls -d /opt/db*`/include/ \ 84 | --prefix=${BITCOIN_PREFIX} \ 85 | --mandir=/usr/share/man \ 86 | --disable-tests \ 87 | --disable-bench \ 88 | --disable-ccache \ 89 | --with-gui=no \ 90 | --with-utils \ 91 | --with-libs \ 92 | --with-sqlite=yes \ 93 | --with-daemon 94 | RUN make -j4 95 | RUN make install 96 | RUN strip ${BITCOIN_PREFIX}/bin/bitcoin-cli 97 | RUN strip ${BITCOIN_PREFIX}/bin/bitcoin-tx 98 | RUN strip ${BITCOIN_PREFIX}/bin/bitcoind 99 | RUN strip ${BITCOIN_PREFIX}/lib/libbitcoinconsensus.a 100 | RUN strip ${BITCOIN_PREFIX}/lib/libbitcoinconsensus.so.0.0.0 101 | 102 | FROM alpine 103 | 104 | ARG UID=100 105 | ARG GID=101 106 | 107 | LABEL maintainer.0="João Fonseca (@joaopaulofonseca)" \ 108 | maintainer.1="Pedro Branco (@pedrobranco)" \ 109 | maintainer.2="Rui Marinho (@ruimarinho)" 110 | 111 | RUN addgroup bitcoin --gid ${GID} --system 112 | RUN adduser --uid ${UID} --system bitcoin --ingroup bitcoin 113 | RUN sed -i 's/http\:\/\/dl-cdn.alpinelinux.org/https\:\/\/alpine.global.ssl.fastly.net/g' /etc/apk/repositories 114 | RUN apk --no-cache add \ 115 | boost-filesystem \ 116 | boost-system \ 117 | boost-thread \ 118 | libevent \ 119 | libzmq \ 120 | shadow \ 121 | sqlite-dev \ 122 | su-exec 123 | 124 | ENV BITCOIN_DATA=/home/bitcoin/.bitcoin 125 | ENV BITCOIN_VERSION=22.0 126 | ENV BITCOIN_PREFIX=/opt/bitcoin-${BITCOIN_VERSION} 127 | ENV PATH=${BITCOIN_PREFIX}/bin:$PATH 128 | 129 | COPY --from=bitcoin-core /opt /opt 130 | COPY docker-entrypoint.sh /entrypoint.sh 131 | 132 | VOLUME ["/home/bitcoin/.bitcoin"] 133 | 134 | EXPOSE 8332 8333 18332 18333 18444 135 | 136 | ENTRYPOINT ["/entrypoint.sh"] 137 | 138 | RUN bitcoind -version | grep "Bitcoin Core version v${BITCOIN_VERSION}" 139 | 140 | CMD ["bitcoind"] 141 | -------------------------------------------------------------------------------- /26/alpine/Dockerfile: -------------------------------------------------------------------------------- 1 | # Build stage for BerkeleyDB 2 | FROM alpine as berkeleydb 3 | 4 | RUN sed -i 's/http\:\/\/dl-cdn.alpinelinux.org/https\:\/\/alpine.global.ssl.fastly.net/g' /etc/apk/repositories 5 | RUN apk --no-cache add \ 6 | autoconf \ 7 | automake \ 8 | build-base \ 9 | libressl \ 10 | linux-headers \ 11 | wget \ 12 | tar 13 | 14 | ENV BERKELEYDB_VERSION=db-4.8.30.NC 15 | ENV BERKELEYDB_PREFIX=/opt/${BERKELEYDB_VERSION} 16 | 17 | RUN wget https://download.oracle.com/berkeley-db/${BERKELEYDB_VERSION}.tar.gz 18 | RUN tar -xzf *.tar.gz 19 | RUN sed s/__atomic_compare_exchange/__atomic_compare_exchange_db/g -i ${BERKELEYDB_VERSION}/dbinc/atomic.h 20 | RUN mkdir -p ${BERKELEYDB_PREFIX} 21 | 22 | WORKDIR /${BERKELEYDB_VERSION}/build_unix 23 | 24 | RUN ../dist/configure --enable-cxx --disable-shared --with-pic --with-mutex=POSIX/pthreads --prefix=${BERKELEYDB_PREFIX} --build=aarch64-unknown-linux-gnu 25 | RUN make -j4 26 | RUN make install 27 | RUN rm -rf ${BERKELEYDB_PREFIX}/docs 28 | 29 | # Build stage for Bitcoin Core 30 | FROM alpine as bitcoin-core 31 | 32 | COPY --from=berkeleydb /opt /opt 33 | 34 | ENV GNUPGHOME=/tmp/gnupg 35 | 36 | RUN sed -i 's/http\:\/\/dl-cdn.alpinelinux.org/https\:\/\/alpine.global.ssl.fastly.net/g' /etc/apk/repositories 37 | RUN apk --no-cache add autoconf 38 | RUN apk --no-cache add automake 39 | RUN apk --no-cache add boost-dev 40 | RUN apk --no-cache add build-base 41 | RUN apk --no-cache add chrpath 42 | RUN apk --no-cache add file 43 | RUN apk --no-cache add gnupg 44 | RUN apk --no-cache add libevent-dev 45 | RUN apk --no-cache add libressl 46 | RUN apk --no-cache add libtool 47 | RUN apk --no-cache add linux-headers 48 | RUN apk --no-cache add sqlite-dev 49 | RUN apk --no-cache add zeromq-dev 50 | RUN mkdir -p ${GNUPGHOME} 51 | RUN set -ex \ 52 | && for key in \ 53 | 101598DC823C1B5F9A6624ABA5E0907A0380E6C3 \ 54 | F2CFC4ABD0B99D837EEBB7D09B79B45691DB4173 \ 55 | 152812300785C96444D3334D17565732E08E5E41 \ 56 | 0AD83877C1F0CD1EE9BD660AD7CC770B81FD22A8 \ 57 | C060A6635913D98A3587D7DB1C2491FFEB0EF770 \ 58 | CFB16E21C950F67FA95E558F2EEB9F5CC09526C1 \ 59 | F19F5FF2B0589EC341220045BA03F4DBE0C63FB4 \ 60 | F4FC70F07310028424EFC20A8E4256593F177720 \ 61 | D1DBF2C4B96F2DEBF4C16654410108112E7EA81F \ 62 | 287AE4CA1187C68C08B49CB2D11BD4F33F1DB499 \ 63 | 9DEAE0DC7063249FB05474681E4AED62986CD25D \ 64 | 6A8F9C266528E25AEB1D7731C2371D91CB716EA7 \ 65 | 28E72909F1717FE9607754F8A7BEB2621678D37D \ 66 | 616516B8EB6ED02882FC4A7A8ADCB558C4F33D65 \ 67 | ED9BDF7AD6A55E232E84524257FF9BDBCC301009 \ 68 | ; do \ 69 | gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "$key" || \ 70 | gpg --batch --keyserver keys.openpgp.org --recv-keys "$key" || \ 71 | gpg --batch --keyserver keyserver.pgp.com --recv-keys "$key" || \ 72 | gpg --batch --keyserver ha.pool.sks-keyservers.net --recv-keys "$key" || \ 73 | gpg --batch --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys "$key" ; \ 74 | done 75 | 76 | ENV BITCOIN_VERSION=26.0 77 | ENV BITCOIN_PREFIX=/opt/bitcoin-${BITCOIN_VERSION} 78 | 79 | RUN wget https://bitcoincore.org/bin/bitcoin-core-${BITCOIN_VERSION}/SHA256SUMS 80 | RUN wget https://bitcoincore.org/bin/bitcoin-core-${BITCOIN_VERSION}/SHA256SUMS.asc 81 | RUN wget https://bitcoincore.org/bin/bitcoin-core-${BITCOIN_VERSION}/bitcoin-${BITCOIN_VERSION}.tar.gz 82 | RUN gpg --verify SHA256SUMS.asc SHA256SUMS 83 | RUN grep " bitcoin-${BITCOIN_VERSION}.tar.gz\$" SHA256SUMS | sha256sum -c - 84 | RUN tar -xzf *.tar.gz 85 | 86 | WORKDIR /bitcoin-${BITCOIN_VERSION} 87 | 88 | RUN sed -i s:sys/fcntl.h:fcntl.h: src/compat/compat.h 89 | RUN ./autogen.sh 90 | RUN ./configure LDFLAGS=-L`ls -d /opt/db*`/lib/ CPPFLAGS=-I`ls -d /opt/db*`/include/ \ 91 | --prefix=${BITCOIN_PREFIX} \ 92 | --mandir=/usr/share/man \ 93 | --disable-tests \ 94 | --disable-bench \ 95 | --disable-ccache \ 96 | --with-gui=no \ 97 | --with-utils \ 98 | --with-libs \ 99 | --with-sqlite=yes \ 100 | --with-daemon 101 | RUN make -j4 102 | RUN make install 103 | RUN strip ${BITCOIN_PREFIX}/bin/bitcoin-cli 104 | RUN strip ${BITCOIN_PREFIX}/bin/bitcoin-tx 105 | RUN strip ${BITCOIN_PREFIX}/bin/bitcoind 106 | RUN strip ${BITCOIN_PREFIX}/lib/libbitcoinconsensus.a 107 | RUN strip ${BITCOIN_PREFIX}/lib/libbitcoinconsensus.so.0.0.0 108 | 109 | # Build stage for compiled artifacts 110 | FROM alpine 111 | 112 | ARG UID=100 113 | ARG GID=101 114 | 115 | LABEL maintainer.0="João Fonseca (@joaopaulofonseca)" \ 116 | maintainer.1="Pedro Branco (@pedrobranco)" \ 117 | maintainer.2="Rui Marinho (@ruimarinho)" 118 | 119 | RUN addgroup bitcoin --gid ${GID} --system 120 | RUN adduser --uid ${UID} --system bitcoin --ingroup bitcoin 121 | RUN sed -i 's/http\:\/\/dl-cdn.alpinelinux.org/https\:\/\/alpine.global.ssl.fastly.net/g' /etc/apk/repositories 122 | RUN apk --no-cache add \ 123 | boost-filesystem \ 124 | boost-system \ 125 | boost-thread \ 126 | libevent \ 127 | libzmq \ 128 | shadow \ 129 | sqlite-dev \ 130 | su-exec 131 | 132 | ENV BITCOIN_DATA=/home/bitcoin/.bitcoin 133 | ENV BITCOIN_VERSION=26.0 134 | ENV BITCOIN_PREFIX=/opt/bitcoin-${BITCOIN_VERSION} 135 | ENV PATH=${BITCOIN_PREFIX}/bin:$PATH 136 | 137 | COPY --from=bitcoin-core /opt /opt 138 | COPY docker-entrypoint.sh /entrypoint.sh 139 | 140 | VOLUME ["/home/bitcoin/.bitcoin"] 141 | 142 | EXPOSE 8332 8333 18332 18333 18444 143 | 144 | ENTRYPOINT ["/entrypoint.sh"] 145 | 146 | RUN bitcoind -version | grep "Bitcoin Core version v${BITCOIN_VERSION}" 147 | 148 | CMD ["bitcoind"] 149 | -------------------------------------------------------------------------------- /27/alpine/Dockerfile: -------------------------------------------------------------------------------- 1 | # Build stage for BerkeleyDB 2 | FROM alpine as berkeleydb 3 | 4 | RUN sed -i 's/http\:\/\/dl-cdn.alpinelinux.org/https\:\/\/alpine.global.ssl.fastly.net/g' /etc/apk/repositories 5 | RUN apk --no-cache add \ 6 | autoconf \ 7 | automake \ 8 | build-base \ 9 | libressl \ 10 | linux-headers \ 11 | wget \ 12 | tar 13 | 14 | ENV BERKELEYDB_VERSION=db-4.8.30.NC 15 | ENV BERKELEYDB_PREFIX=/opt/${BERKELEYDB_VERSION} 16 | 17 | RUN wget https://download.oracle.com/berkeley-db/${BERKELEYDB_VERSION}.tar.gz 18 | RUN tar -xzf *.tar.gz 19 | RUN sed s/__atomic_compare_exchange/__atomic_compare_exchange_db/g -i ${BERKELEYDB_VERSION}/dbinc/atomic.h 20 | RUN mkdir -p ${BERKELEYDB_PREFIX} 21 | 22 | WORKDIR /${BERKELEYDB_VERSION}/build_unix 23 | 24 | RUN ../dist/configure --enable-cxx --disable-shared --with-pic --with-mutex=POSIX/pthreads --prefix=${BERKELEYDB_PREFIX} --build=aarch64-unknown-linux-gnu 25 | RUN make -j4 26 | RUN make install 27 | RUN rm -rf ${BERKELEYDB_PREFIX}/docs 28 | 29 | # Build stage for Bitcoin Core 30 | FROM alpine as bitcoin-core 31 | 32 | COPY --from=berkeleydb /opt /opt 33 | 34 | ENV GNUPGHOME=/tmp/gnupg 35 | 36 | RUN sed -i 's/http\:\/\/dl-cdn.alpinelinux.org/https\:\/\/alpine.global.ssl.fastly.net/g' /etc/apk/repositories 37 | RUN apk --no-cache add autoconf 38 | RUN apk --no-cache add automake 39 | RUN apk --no-cache add boost-dev 40 | RUN apk --no-cache add build-base 41 | RUN apk --no-cache add chrpath 42 | RUN apk --no-cache add file 43 | RUN apk --no-cache add gnupg 44 | RUN apk --no-cache add libevent-dev 45 | RUN apk --no-cache add libressl 46 | RUN apk --no-cache add libtool 47 | RUN apk --no-cache add linux-headers 48 | RUN apk --no-cache add sqlite-dev 49 | RUN apk --no-cache add zeromq-dev 50 | RUN mkdir -p ${GNUPGHOME} 51 | RUN set -ex \ 52 | && for key in \ 53 | 101598DC823C1B5F9A6624ABA5E0907A0380E6C3 \ 54 | F2CFC4ABD0B99D837EEBB7D09B79B45691DB4173 \ 55 | 152812300785C96444D3334D17565732E08E5E41 \ 56 | 0AD83877C1F0CD1EE9BD660AD7CC770B81FD22A8 \ 57 | C060A6635913D98A3587D7DB1C2491FFEB0EF770 \ 58 | CFB16E21C950F67FA95E558F2EEB9F5CC09526C1 \ 59 | F19F5FF2B0589EC341220045BA03F4DBE0C63FB4 \ 60 | F4FC70F07310028424EFC20A8E4256593F177720 \ 61 | D1DBF2C4B96F2DEBF4C16654410108112E7EA81F \ 62 | 287AE4CA1187C68C08B49CB2D11BD4F33F1DB499 \ 63 | 9DEAE0DC7063249FB05474681E4AED62986CD25D \ 64 | 6A8F9C266528E25AEB1D7731C2371D91CB716EA7 \ 65 | 28E72909F1717FE9607754F8A7BEB2621678D37D \ 66 | 616516B8EB6ED02882FC4A7A8ADCB558C4F33D65 \ 67 | ED9BDF7AD6A55E232E84524257FF9BDBCC301009 \ 68 | C388F6961FB972A95678E327F62711DBDCA8AE56 \ 69 | 637DB1E23370F84AFF88CCE03152347D07DA627C \ 70 | E86AE73439625BBEE306AAE6B66D427F873CB1A3 \ 71 | E61773CD6E01040E2F1BD78CE7E2984B6289C93A \ 72 | ; do \ 73 | gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "$key" || \ 74 | gpg --batch --keyserver keys.openpgp.org --recv-keys "$key" || \ 75 | gpg --batch --keyserver keyserver.pgp.com --recv-keys "$key" || \ 76 | gpg --batch --keyserver ha.pool.sks-keyservers.net --recv-keys "$key" || \ 77 | gpg --batch --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys "$key" ; \ 78 | done 79 | 80 | ENV BITCOIN_VERSION=27.0 81 | ENV BITCOIN_PREFIX=/opt/bitcoin-${BITCOIN_VERSION} 82 | 83 | RUN wget https://bitcoincore.org/bin/bitcoin-core-${BITCOIN_VERSION}/SHA256SUMS 84 | RUN wget https://bitcoincore.org/bin/bitcoin-core-${BITCOIN_VERSION}/SHA256SUMS.asc 85 | RUN wget https://bitcoincore.org/bin/bitcoin-core-${BITCOIN_VERSION}/bitcoin-${BITCOIN_VERSION}.tar.gz 86 | RUN gpg --verify SHA256SUMS.asc SHA256SUMS 87 | RUN grep " bitcoin-${BITCOIN_VERSION}.tar.gz\$" SHA256SUMS | sha256sum -c - 88 | RUN tar -xzf *.tar.gz 89 | 90 | WORKDIR /bitcoin-${BITCOIN_VERSION} 91 | 92 | RUN sed -i s:sys/fcntl.h:fcntl.h: src/compat/compat.h 93 | RUN ./autogen.sh 94 | RUN ./configure LDFLAGS=-L`ls -d /opt/db*`/lib/ CPPFLAGS=-I`ls -d /opt/db*`/include/ \ 95 | --prefix=${BITCOIN_PREFIX} \ 96 | --mandir=/usr/share/man \ 97 | --disable-tests \ 98 | --disable-bench \ 99 | --disable-ccache \ 100 | --with-gui=no \ 101 | --with-utils \ 102 | --with-libs \ 103 | --with-sqlite=yes \ 104 | --with-daemon 105 | RUN make -j4 106 | RUN make install 107 | RUN strip ${BITCOIN_PREFIX}/bin/bitcoin-cli 108 | RUN strip ${BITCOIN_PREFIX}/bin/bitcoin-tx 109 | RUN strip ${BITCOIN_PREFIX}/bin/bitcoind 110 | RUN strip ${BITCOIN_PREFIX}/lib/libbitcoinconsensus.a 111 | RUN strip ${BITCOIN_PREFIX}/lib/libbitcoinconsensus.so.0.0.0 112 | 113 | # Build stage for compiled artifacts 114 | FROM alpine 115 | 116 | ARG UID=100 117 | ARG GID=101 118 | 119 | LABEL maintainer.0="João Fonseca (@joaopaulofonseca)" \ 120 | maintainer.1="Pedro Branco (@pedrobranco)" \ 121 | maintainer.2="Rui Marinho (@ruimarinho)" 122 | 123 | RUN addgroup bitcoin --gid ${GID} --system 124 | RUN adduser --uid ${UID} --system bitcoin --ingroup bitcoin 125 | RUN sed -i 's/http\:\/\/dl-cdn.alpinelinux.org/https\:\/\/alpine.global.ssl.fastly.net/g' /etc/apk/repositories 126 | RUN apk --no-cache add \ 127 | boost-filesystem \ 128 | boost-system \ 129 | boost-thread \ 130 | libevent \ 131 | libzmq \ 132 | shadow \ 133 | sqlite-dev \ 134 | su-exec 135 | 136 | ENV BITCOIN_DATA=/home/bitcoin/.bitcoin 137 | ENV BITCOIN_VERSION=27.0 138 | ENV BITCOIN_PREFIX=/opt/bitcoin-${BITCOIN_VERSION} 139 | ENV PATH=${BITCOIN_PREFIX}/bin:$PATH 140 | 141 | COPY --from=bitcoin-core /opt /opt 142 | COPY docker-entrypoint.sh /entrypoint.sh 143 | 144 | VOLUME ["/home/bitcoin/.bitcoin"] 145 | 146 | EXPOSE 8332 8333 18332 18333 18444 147 | 148 | ENTRYPOINT ["/entrypoint.sh"] 149 | 150 | RUN bitcoind -version | grep "Bitcoin Core version v${BITCOIN_VERSION}" 151 | 152 | CMD ["bitcoind"] 153 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # lightninglabs/bitcoin-core 2 | 3 | A bitcoin-core docker image with support for the following platforms: 4 | 5 | * `amd64` (x86_64) 6 | * `arm32v7` (armv7) 7 | * `arm64` (aarch64, armv8) 8 | 9 | [![lightninglabs/bitcoin-core][docker-pulls-image]][docker-hub-url] [![lightninglabs/bitcoin-core][docker-stars-image]][docker-hub-url] [![lightninglabs/bitcoin-core][docker-size-image]][docker-hub-url] 10 | 11 | ## Tags 12 | - `29.0`, `29` ([28/Dockerfile](https://github.com/lightninglabs/docker-bitcoin-core/blob/master/29/Dockerfile)) [**multi-arch**] 13 | - `2890-alpine`, `29-alpine` ([29/alpine/Dockerfile](https://github.com/lightninglabs/docker-bitcoin-core/blob/master/29/alpine/Dockerfile)) 14 | 15 | - `28.0`, `28` ([28/Dockerfile](https://github.com/lightninglabs/docker-bitcoin-core/blob/master/28/Dockerfile)) [**multi-arch**] 16 | - `28.0-alpine`, `28-alpine` ([28/alpine/Dockerfile](https://github.com/lightninglabs/docker-bitcoin-core/blob/master/28/alpine/Dockerfile)) 17 | 18 | - `27.0`, `27` ([27/Dockerfile](https://github.com/lightninglabs/docker-bitcoin-core/blob/master/27/Dockerfile)) [**multi-arch**] 19 | - `27.0-alpine`, `27-alpine` ([27/alpine/Dockerfile](https://github.com/lightninglabs/docker-bitcoin-core/blob/master/27/alpine/Dockerfile)) 20 | 21 | - `26.0`, `26` ([26/Dockerfile](https://github.com/ruimarinho/docker-bitcoin-core/blob/master/25/Dockerfile)) [**multi-arch**] 22 | - `26.0-alpine`, `26-alpine` ([26/alpine/Dockerfile](https://github.com/ruimarinho/docker-bitcoin-core/blob/master/25/alpine/Dockerfile)) 23 | 24 | - `25.0`, `25` ([25/Dockerfile](https://github.com/ruimarinho/docker-bitcoin-core/blob/master/25/Dockerfile)) [**multi-arch**] 25 | - `25.0-alpine`, `25-alpine` ([25/alpine/Dockerfile](https://github.com/ruimarinho/docker-bitcoin-core/blob/master/25/alpine/Dockerfile)) 26 | 27 | - `24.0.1`, `24`, `latest` ([24/Dockerfile](https://github.com/ruimarinho/docker-bitcoin-core/blob/master/24/Dockerfile)) [**multi-arch**] 28 | - `24.0.1-alpine`, `24-alpine` ([24/alpine/Dockerfile](https://github.com/ruimarinho/docker-bitcoin-core/blob/master/24/alpine/Dockerfile)) 29 | 30 | - `23.0`, `23` ([23/Dockerfile](https://github.com/ruimarinho/docker-bitcoin-core/blob/master/23/Dockerfile)) [**multi-arch**] 31 | - `23.0-alpine`, `23-alpine` ([23/alpine/Dockerfile](https://github.com/ruimarinho/docker-bitcoin-core/blob/master/23/alpine/Dockerfile)) 32 | 33 | - `22.0`, `22`, ([22/Dockerfile](https://github.com/ruimarinho/docker-bitcoin-core/blob/master/22/Dockerfile)) [**multi-arch**] 34 | - `22.0-alpine`, `22-alpine` ([22/alpine/Dockerfile](https://github.com/ruimarinho/docker-bitcoin-core/blob/master/22/alpine/Dockerfile)) 35 | 36 | - `0.21.1`, `0.21` ([0.21/Dockerfile](https://github.com/ruimarinho/docker-bitcoin-core/blob/master/0.21/Dockerfile)) [**multi-arch**] 37 | - `0.21.1-alpine`, `0.21-alpine` ([0.21/alpine/Dockerfile](https://github.com/ruimarinho/docker-bitcoin-core/blob/master/0.21/alpine/Dockerfile)) 38 | 39 | - `0.20.1`, `0.20` ([0.20/Dockerfile](https://github.com/ruimarinho/docker-bitcoin-core/blob/master/0.20/Dockerfile)) [**multi-arch**] 40 | - `0.20.1-alpine`, `0.20-alpine` ([0.20/alpine/Dockerfile](https://github.com/ruimarinho/docker-bitcoin-core/blob/master/0.20/alpine/Dockerfile)) 41 | 42 | - `0.19.1`, `0.19` ([0.19/Dockerfile](https://github.com/ruimarinho/docker-bitcoin-core/blob/master/0.19/Dockerfile)) [**multi-arch**] 43 | - `0.19.1-alpine`, `0.19-alpine` ([0.19/alpine/Dockerfile](https://github.com/ruimarinho/docker-bitcoin-core/blob/master/0.19/alpine/Dockerfile)) 44 | 45 | - `0.18.1`, `0.18`, ([0.18/Dockerfile](https://github.com/ruimarinho/docker-bitcoin-core/blob/master/0.18/Dockerfile)) 46 | - `0.18.1-alpine`, `0.18-alpine` ([0.18/alpine/Dockerfile](https://github.com/ruimarinho/docker-bitcoin-core/blob/master/0.18/alpine/Dockerfile)) 47 | 48 | - `0.17.1`, `0.17` ([0.17/Dockerfile](https://github.com/ruimarinho/docker-bitcoin-core/blob/master/0.17/Dockerfile)) 49 | - `0.17.1-alpine`, `0.17-alpine` ([0.17/alpine/Dockerfile](https://github.com/ruimarinho/docker-bitcoin-core/blob/master/0.17/alpine/Dockerfile)) 50 | 51 | - `0.16.3`, `0.16` ([0.16/Dockerfile](https://github.com/ruimarinho/docker-bitcoin-core/blob/master/0.16/Dockerfile)) 52 | - `0.16.3-alpine`, `0.16-alpine` ([0.16/alpine/Dockerfile](https://github.com/ruimarinho/docker-bitcoin-core/blob/master/0.16/alpine/Dockerfile)) 53 | 54 | - `0.15.1`, `0.15` ([0.15/Dockerfile](https://github.com/ruimarinho/docker-bitcoin-core/blob/master/0.15/Dockerfile)) 55 | - `0.15.1-alpine`, `0.15-alpine` ([0.15/alpine/Dockerfile](https://github.com/ruimarinho/docker-bitcoin-core/blob/master/0.15/alpine/Dockerfile)) 56 | 57 | **Multi-architecture builds** 58 | 59 | The newest images (Debian-based, *0.19+*) provide built-in support for multiple architectures. Running `docker pull` on any of the supported platforms will automatically choose the right image for you as all of the manifests and artifacts are pushed to the Docker registry. 60 | 61 | **Picking the right tag** 62 | 63 | - `ruimarinho/bitcoin-core:latest`: points to the latest stable release available of Bitcoin Core. Caution when using in production as blindly upgrading Bitcoin Core is a risky procedure. 64 | - `ruimarinho/bitcoin-core:alpine`: same as above but using the Alpine Linux distribution (a resource efficient Linux distribution with security in mind, but not officially supported by the Bitcoin Core team — use at your own risk). 65 | - `ruimarinho/bitcoin-core:`: based on a slim Debian image, this tag format points to a specific version branch (e.g. `0.20`) or release of Bitcoin Core (e.g. `0.20.1`). Uses the pre-compiled binaries which are distributed by the Bitcoin Core team. 66 | - `ruimarinho/bitcoin-core:-alpine`: same as above but using the Alpine Linux distribution. 67 | 68 | ## What is Bitcoin Core? 69 | 70 | Bitcoin Core is a reference client that implements the Bitcoin protocol for remote procedure call (RPC) use. It is also the second Bitcoin client in the network's history. Learn more about Bitcoin Core on the [Bitcoin Developer Reference docs](https://bitcoin.org/en/developer-reference). 71 | 72 | ## Usage 73 | 74 | ### How to use this image 75 | 76 | This image contains the main binaries from the Bitcoin Core project - `bitcoind`, `bitcoin-cli` and `bitcoin-tx`. It behaves like a binary, so you can pass any arguments to the image and they will be forwarded to the `bitcoind` binary: 77 | 78 | ```sh 79 | ❯ docker run --rm -it ruimarinho/bitcoin-core \ 80 | -printtoconsole \ 81 | -regtest=1 \ 82 | -rpcallowip=172.17.0.0/16 \ 83 | -rpcauth='foo:7d9ba5ae63c3d4dc30583ff4fe65a67e$9e3634e81c11659e3de036d0bf88f89cd169c1039e6e09607562d54765c649cc' 84 | ``` 85 | 86 | _Note: [learn more](#using-rpcauth-for-remote-authentication) about how `-rpcauth` works for remote authentication._ 87 | 88 | By default, `bitcoind` will run as user `bitcoin` in the group `bitcoin` for security reasons and with its default data dir set to `~/.bitcoin`. If you'd like to customize where `bitcoin-core` stores its data, you must use the `BITCOIN_DATA` environment variable. The directory will be automatically created with the correct permissions for the `bitcoin` user and `bitcoind` automatically configured to use it. 89 | 90 | ```sh 91 | ❯ docker run --env BITCOIN_DATA=/var/lib/bitcoin-core --rm -it ruimarinho/bitcoin-core \ 92 | -printtoconsole \ 93 | -regtest=1 94 | ``` 95 | 96 | You can also mount a directory in a volume under `/home/bitcoin/.bitcoin` in case you want to access it on the host: 97 | 98 | ```sh 99 | ❯ docker run -v ${PWD}/data:/home/bitcoin/.bitcoin -it --rm ruimarinho/bitcoin-core \ 100 | -printtoconsole \ 101 | -regtest=1 102 | ``` 103 | 104 | You can optionally create a service using `docker-compose`: 105 | 106 | ```yml 107 | bitcoin-core: 108 | image: ruimarinho/bitcoin-core 109 | command: 110 | -printtoconsole 111 | -regtest=1 112 | ``` 113 | 114 | ### Using a custom user id (UID) and group id (GID) 115 | 116 | By default, images are created with a `bitcoin` user/group using a static UID/GID (`101:101` on Debian and `100:101` on Alpine). You may customize the user and group ids using the build arguments `UID` (`--build-arg UID=`) and `GID` (`--build-arg GID=`). 117 | 118 | If you'd like to use the pre-built images, uou can also customize the UID/GID on runtime via environment variables `$UID` and `$GID`: 119 | 120 | ```sh 121 | ❯ docker run -e UID=10000 -e GID=10000 -it --rm ruimarinho/bitcoin-core \ 122 | -printtoconsole \ 123 | -regtest=1 124 | ``` 125 | 126 | This will recursively change the ownership of the `bitcoin` home directory and `$BITCOIN_DATA` to UID/GID `10000:10000`. 127 | 128 | ### Using RPC to interact with the daemon 129 | 130 | There are two communications methods to interact with a running Bitcoin Core daemon. 131 | 132 | The first one is using a cookie-based local authentication. It doesn't require any special authentication information as running a process locally under the same user that was used to launch the Bitcoin Core daemon allows it to read the cookie file previously generated by the daemon for clients. The downside of this method is that it requires local machine access. 133 | 134 | The second option is making a remote procedure call using a username and password combination. This has the advantage of not requiring local machine access, but in order to keep your credentials safe you should use the newer `rpcauth` authentication mechanism. 135 | 136 | #### Using cookie-based local authentication 137 | 138 | Start by launch the Bitcoin Core daemon: 139 | 140 | ```sh 141 | ❯ docker run --rm --name bitcoin-server -it ruimarinho/bitcoin-core \ 142 | -printtoconsole \ 143 | -regtest=1 144 | ``` 145 | 146 | Then, inside the running `bitcoin-server` container, locally execute the query to the daemon using `bitcoin-cli`: 147 | 148 | ```sh 149 | ❯ docker exec --user bitcoin bitcoin-server bitcoin-cli -regtest getmininginfo 150 | 151 | { 152 | "blocks": 0, 153 | "currentblocksize": 0, 154 | "currentblockweight": 0, 155 | "currentblocktx": 0, 156 | "difficulty": 4.656542373906925e-10, 157 | "errors": "", 158 | "networkhashps": 0, 159 | "pooledtx": 0, 160 | "chain": "regtest" 161 | } 162 | ``` 163 | 164 | In the background, `bitcoin-cli` read the information automatically from `/home/bitcoin/.bitcoin/regtest/.cookie`. In production, the path would not contain the regtest part. 165 | 166 | #### Using rpcauth for remote authentication 167 | 168 | Before setting up remote authentication, you will need to generate the `rpcauth` line that will hold the credentials for the Bitcoind Core daemon. You can either do this yourself by constructing the line with the format `:$` or use the official [`rpcauth.py`](https://github.com/bitcoin/bitcoin/blob/master/share/rpcauth/rpcauth.py) script to generate this line for you, including a random password that is printed to the console. 169 | 170 | _Note: This is a Python 3 script. use `[...] | python3 - ` when executing on macOS._ 171 | 172 | Example: 173 | 174 | ```sh 175 | ❯ curl -sSL https://raw.githubusercontent.com/bitcoin/bitcoin/master/share/rpcauth/rpcauth.py | python - 176 | 177 | String to be appended to bitcoin.conf: 178 | rpcauth=foo:7d9ba5ae63c3d4dc30583ff4fe65a67e$9e3634e81c11659e3de036d0bf88f89cd169c1039e6e09607562d54765c649cc 179 | Your password: 180 | qDDZdeQ5vw9XXFeVnXT4PZ--tGN2xNjjR4nrtyszZx0= 181 | ``` 182 | 183 | Note that for each run, even if the username remains the same, the output will be always different as a new salt and password are generated. 184 | 185 | Now that you have your credentials, you need to start the Bitcoin Core daemon with the `-rpcauth` option. Alternatively, you could append the line to a `bitcoin.conf` file and mount it on the container. 186 | 187 | Let's opt for the Docker way: 188 | 189 | ```sh 190 | ❯ docker run --rm --name bitcoin-server -it ruimarinho/bitcoin-core \ 191 | -printtoconsole \ 192 | -regtest=1 \ 193 | -rpcallowip=172.17.0.0/16 \ 194 | -rpcauth='foo:7d9ba5ae63c3d4dc30583ff4fe65a67e$9e3634e81c11659e3de036d0bf88f89cd169c1039e6e09607562d54765c649cc' 195 | ``` 196 | 197 | Two important notes: 198 | 199 | 1. Some shells require escaping the rpcauth line (e.g. zsh), as shown above. 200 | 2. It is now perfectly fine to pass the rpcauth line as a command line argument. Unlike `-rpcpassword`, the content is hashed so even if the arguments would be exposed, they would not allow the attacker to get the actual password. 201 | 202 | You can now connect via `bitcoin-cli` or any other [compatible client](https://github.com/ruimarinho/bitcoin-core). You will still have to define a username and password when connecting to the Bitcoin Core RPC server. 203 | 204 | To avoid any confusion about whether or not a remote call is being made, let's spin up another container to execute `bitcoin-cli` and connect it via the Docker network using the password generated above: 205 | 206 | ```sh 207 | ❯ docker run -it --link bitcoin-server --rm ruimarinho/bitcoin-core \ 208 | bitcoin-cli \ 209 | -rpcconnect=bitcoin-server \ 210 | -regtest \ 211 | -rpcuser=foo\ 212 | -stdinrpcpass \ 213 | getbalance 214 | ``` 215 | 216 | Enter the password `qDDZdeQ5vw9XXFeVnXT4PZ--tGN2xNjjR4nrtyszZx0=` and hit enter: 217 | 218 | ``` 219 | 0.00000000 220 | ``` 221 | 222 | Note: under Bitcoin Core < 0.16, use `-rpcpassword="qDDZdeQ5vw9XXFeVnXT4PZ--tGN2xNjjR4nrtyszZx0="` instead of `-stdinrpcpass`. 223 | 224 | Done! 225 | 226 | ### Exposing Ports 227 | 228 | Depending on the network (mode) the Bitcoin Core daemon is running as well as the chosen runtime flags, several default ports may be available for mapping. 229 | 230 | Ports can be exposed by mapping all of the available ones (using `-P` and based on what `EXPOSE` documents) or individually by adding `-p`. This mode allows assigning a dynamic port on the host (`-p `) or assigning a fixed port `-p :`. 231 | 232 | Example for running a node in `regtest` mode mapping JSON-RPC/REST (18443) and P2P (18444) ports: 233 | 234 | ```sh 235 | docker run --rm -it \ 236 | -p 18443:18443 \ 237 | -p 18444:18444 \ 238 | ruimarinho/bitcoin-core \ 239 | -printtoconsole \ 240 | -regtest=1 \ 241 | -rpcallowip=172.17.0.0/16 \ 242 | -rpcbind=0.0.0.0 \ 243 | -rpcauth='foo:7d9ba5ae63c3d4dc30583ff4fe65a67e$9e3634e81c11659e3de036d0bf88f89cd169c1039e6e09607562d54765c649cc' 244 | ``` 245 | 246 | To test that mapping worked, you can send a JSON-RPC curl request to the host port: 247 | 248 | ``` 249 | curl --data-binary '{"jsonrpc":"1.0","id":"1","method":"getnetworkinfo","params":[]}' http://foo:qDDZdeQ5vw9XXFeVnXT4PZ--tGN2xNjjR4nrtyszZx0=@127.0.0.1:18443/ 250 | ``` 251 | 252 | #### Mainnet 253 | 254 | - JSON-RPC/REST: 8332 255 | - P2P: 8333 256 | 257 | #### Testnet 258 | 259 | - Testnet JSON-RPC: 18332 260 | - P2P: 18333 261 | 262 | #### Regtest 263 | 264 | - JSON-RPC/REST: 18443 (_since 0.16+_, otherwise _18332_) 265 | - P2P: 18444 266 | 267 | #### Signet 268 | 269 | - JSON-RPC/REST: 38332 270 | - P2P: 38333 271 | 272 | ## Archived tags 273 | 274 | _Please note that due to [CVE-2018-17144](https://nvd.nist.gov/vuln/detail/CVE-2018-17144), the following tags are unavailable: 0.14.0, 0.14.1, 0.14.2, 0.15.0, 0.15.0.1, 0.15.1, 0.16.0, 0.16.1 and 0.16.2._ 275 | 276 | For historical reasons, the following tags are still available and automatically updated when the underlying base image (_Alpine Linux_ or _Debian stable_) is updated as well: 277 | 278 | - `0.13.2`, `0.13` ([0.13/Dockerfile](https://github.com/ruimarinho/docker-bitcoin-core/blob/master/0.13/Dockerfile)) 279 | - `0.13.2-alpine`, `0.13-alpine` ([0.13/alpine/Dockerfile](https://github.com/ruimarinho/docker-bitcoin-core/blob/master/0.13/alpine/Dockerfile)) 280 | 281 | - `0.12.1`, `0.12` ([0.12/Dockerfile](https://github.com/ruimarinho/docker-bitcoin-core/blob/master/0.12/Dockerfile)) 282 | - `0.12.1-alpine`, `0.12-alpine` ([0.12/alpine/Dockerfile](https://github.com/ruimarinho/docker-bitcoin-core/blob/master/0.12/alpine/Dockerfile)) 283 | 284 | - `0.11.2`, `0.11` ([0.11/Dockerfile](https://github.com/ruimarinho/docker-bitcoin-core/blob/master/0.11/Dockerfile)) 285 | - `0.11.2-alpine`, `0.11-alpine` ([0.11/alpine/Dockerfile](https://github.com/ruimarinho/docker-bitcoin-core/blob/master/0.11/alpine/Dockerfile)) 286 | 287 | ## Docker 288 | 289 | This image is officially supported on Docker version 17.09, with support for older versions provided on a best-effort basis. 290 | 291 | ## License 292 | 293 | [License information](https://github.com/bitcoin/bitcoin/blob/master/COPYING) for the software contained in this image. 294 | 295 | [License information](https://github.com/ruimarinho/docker-bitcoin-core/blob/master/LICENSE) for the [ruimarinho/docker-bitcoin-core][docker-hub-url] docker project. 296 | 297 | [docker-hub-url]: https://hub.docker.com/r/ruimarinho/bitcoin-core 298 | [docker-pulls-image]: https://img.shields.io/docker/pulls/ruimarinho/bitcoin-core.svg?style=flat-square 299 | [docker-size-image]: https://img.shields.io/docker/image-size/ruimarinho/bitcoin-core?style=flat-square 300 | [docker-stars-image]: https://img.shields.io/docker/stars/ruimarinho/bitcoin-core.svg?style=flat-square 301 | --------------------------------------------------------------------------------