diff --git a/0.18/binary/Dockerfile b/0.18/binary/Dockerfile index 5a215da..e898f00 100644 --- a/0.18/binary/Dockerfile +++ b/0.18/binary/Dockerfile @@ -46,14 +46,17 @@ VOLUME /root/.bitcoin COPY --from=bitcoin-core /opt /opt -# Ports: -# 8080 - -# 8332 - RPC main net -# 8333 - P2P network main net -# 18332 - RPC test net -# 18443 - RPC reg net - -EXPOSE 8080 8332 8333 18332 18333 18444 28333 28332 +# REST interface +EXPOSE 8080 + +# P2P network (mainnet, testnet & regnet respectively) +EXPOSE 8333 18333 18444 + +# RPC interface (mainnet, testnet & regnet respectively) +EXPOSE 8332 18332 18443 + +# ZMQ ports (for transactions & blocks respectively) +EXPOSE 28332 28333 ENTRYPOINT ["bitcoind"] CMD ["bitcoind", "-zmqpubrawblock=tcp://0.0.0.0:28332", "-zmqpubrawtx=tcp://0.0.0.0:28333"] diff --git a/0.18/source/Dockerfile b/0.18/source/Dockerfile index e22fe71..3099cf5 100644 --- a/0.18/source/Dockerfile +++ b/0.18/source/Dockerfile @@ -4,6 +4,7 @@ FROM alpine:3.9 AS bitcoin-core # fetch already built berkeleydb COPY --from=lncm/berkeleydb:db-4.8.30.NC /opt /opt +# Replace `http:` repositories with `https:` ones RUN sed -i 's/http\:\/\/dl-cdn.alpinelinux.org/https\:\/\/alpine.global.ssl.fastly.net/g' /etc/apk/repositories RUN apk --no-cache add autoconf RUN apk --no-cache add automake @@ -34,15 +35,26 @@ ENV BITCOIN_PREFIX=/opt/bitcoin-${BITCOIN_VERSION} RUN wget https://bitcoin.org/bin/bitcoin-core-${BITCOIN_VERSION}/SHA256SUMS.asc RUN wget https://bitcoin.org/bin/bitcoin-core-${BITCOIN_VERSION}/bitcoin-${BITCOIN_VERSION}.tar.gz + +# Verify that hashes are signed with the previously imported key RUN gpg --verify SHA256SUMS.asc + +# Verify that downloaded source-code archive has exactly the hash that's provided RUN grep " bitcoin-${BITCOIN_VERSION}.tar.gz\$" SHA256SUMS.asc | sha256sum -c - + +# Extract RUN tar -xzf *.tar.gz +# Change to the extraced directory WORKDIR /bitcoin-${BITCOIN_VERSION} +# ??? RUN sed -i '/AC_PREREQ/a\AR_FLAGS=cr' src/univalue/configure.ac +# ??? RUN sed -i '/AX_PROG_CC_FOR_BUILD/a\AR_FLAGS=cr' src/secp256k1/configure.ac +# ??? RUN sed -i s:sys/fcntl.h:fcntl.h: src/compat.h + RUN ./autogen.sh RUN ./configure LDFLAGS=-L`ls -d /opt/db*`/lib/ CPPFLAGS=-I`ls -d /opt/db*`/include/ \ --prefix=${BITCOIN_PREFIX} \ @@ -56,6 +68,7 @@ RUN ./configure LDFLAGS=-L`ls -d /opt/db*`/lib/ CPPFLAGS=-I`ls -d /opt/db*`/incl --with-daemon RUN make RUN make install + RUN strip ${BITCOIN_PREFIX}/bin/bitcoin-cli RUN strip ${BITCOIN_PREFIX}/bin/bitcoin-tx RUN strip ${BITCOIN_PREFIX}/bin/bitcoind @@ -69,6 +82,8 @@ FROM alpine:3.9 AS final LABEL maintainer.0="nolim1t (@nolim1t)" \ maintainer.1="Damian Mee (@meeDamian)" +# TODO: Eliminating the two RUN lines below is necessary to cross-compileā€¦ +# Replace `http:` repositories with `https:` ones RUN sed -i 's/http\:\/\/dl-cdn.alpinelinux.org/https\:\/\/alpine.global.ssl.fastly.net/g' /etc/apk/repositories RUN apk --no-cache add \ boost \ @@ -86,14 +101,17 @@ VOLUME /root/.bitcoin COPY --from=bitcoin-core /opt /opt -# Ports: -# 8080 - -# 8332 - RPC main net -# 8333 - P2P network main net -# 18332 - RPC test net -# 18443 - RPC reg net +# REST interface +EXPOSE 8080 + +# P2P network (mainnet, testnet & regnet respectively) +EXPOSE 8333 18333 18444 + +# RPC interface (mainnet, testnet & regnet respectively) +EXPOSE 8332 18332 18443 -EXPOSE 8080 8332 8333 18332 18333 18444 28333 28332 +# ZMQ ports (for transactions & blocks respectively) +EXPOSE 28332 28333 ENTRYPOINT ["bitcoind"] CMD ["bitcoind", "-zmqpubrawblock=tcp://0.0.0.0:28332", "-zmqpubrawtx=tcp://0.0.0.0:28333"]