dockerfile: optimize on size and network call
- merge multiple steps to reduce number of layers - run make clean to reduce layer size - run cargo clean - merge multiple ARG into single step Signed-off-by: Lakshya Singh <lakshay.singh1108@gmail.com>
This commit is contained in:
@@ -53,21 +53,21 @@ ARG BITCOIN_VERSION=23.0
|
||||
ARG BITCOIN_PREFIX=/opt/bitcoin-${BITCOIN_VERSION}
|
||||
ARG SHA256SUMS_HASH=aaff81ea001f499e8f6f3221387d7db960d71a3b7a4a2b1aaf2c8060bc94a391
|
||||
|
||||
RUN wget https://bitcoincore.org/bin/bitcoin-core-${BITCOIN_VERSION}/SHA256SUMS
|
||||
RUN wget https://bitcoincore.org/bin/bitcoin-core-${BITCOIN_VERSION}/SHA256SUMS.asc
|
||||
RUN wget https://bitcoincore.org/bin/bitcoin-core-${BITCOIN_VERSION}/bitcoin-${BITCOIN_VERSION}.tar.gz
|
||||
RUN gpg --batch --verify SHA256SUMS.asc SHA256SUMS
|
||||
RUN echo "${SHA256SUMS_HASH} SHA256SUMS" | sha256sum -c -
|
||||
RUN grep " bitcoin-${BITCOIN_VERSION}.tar.gz\$" SHA256SUMS | sha256sum -c -
|
||||
RUN tar -xzf *.tar.gz
|
||||
RUN wget https://bitcoincore.org/bin/bitcoin-core-${BITCOIN_VERSION}/SHA256SUMS && \
|
||||
wget https://bitcoincore.org/bin/bitcoin-core-${BITCOIN_VERSION}/SHA256SUMS.asc && \
|
||||
wget https://bitcoincore.org/bin/bitcoin-core-${BITCOIN_VERSION}/bitcoin-${BITCOIN_VERSION}.tar.gz && \
|
||||
gpg --batch --verify SHA256SUMS.asc SHA256SUMS && \
|
||||
echo "${SHA256SUMS_HASH} SHA256SUMS" | sha256sum -c - && \
|
||||
grep " bitcoin-${BITCOIN_VERSION}.tar.gz\$" SHA256SUMS | sha256sum -c - && \
|
||||
tar -xzf *.tar.gz
|
||||
|
||||
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/ \
|
||||
RUN sed -i '/AC_PREREQ/a\AR_FLAGS=cr' src/univalue/configure.ac && \
|
||||
sed -i '/AX_PROG_CC_FOR_BUILD/a\AR_FLAGS=cr' src/secp256k1/configure.ac && \
|
||||
sed -i s:sys/fcntl.h:fcntl.h: src/compat.h && \
|
||||
./autogen.sh && \
|
||||
./configure LDFLAGS=-L`ls -d /opt/db*`/lib/ CPPFLAGS=-I`ls -d /opt/db*`/include/ \
|
||||
--prefix=${BITCOIN_PREFIX} \
|
||||
--mandir=/usr/share/man \
|
||||
--disable-tests \
|
||||
@@ -78,13 +78,15 @@ RUN ./configure LDFLAGS=-L`ls -d /opt/db*`/lib/ CPPFLAGS=-I`ls -d /opt/db*`/incl
|
||||
--with-libs \
|
||||
--with-sqlite=yes \
|
||||
--with-daemon
|
||||
RUN make -j $(nproc)
|
||||
RUN make install
|
||||
RUN strip ${BITCOIN_PREFIX}/bin/bitcoin-cli
|
||||
RUN strip ${BITCOIN_PREFIX}/bin/bitcoin-tx
|
||||
RUN strip ${BITCOIN_PREFIX}/bin/bitcoind
|
||||
RUN strip ${BITCOIN_PREFIX}/lib/libbitcoinconsensus.a
|
||||
RUN strip ${BITCOIN_PREFIX}/lib/libbitcoinconsensus.so.0.0.0
|
||||
|
||||
RUN make -j $(nproc) && \
|
||||
make install && \
|
||||
strip ${BITCOIN_PREFIX}/bin/bitcoin-cli \
|
||||
${BITCOIN_PREFIX}/bin/bitcoin-tx \
|
||||
${BITCOIN_PREFIX}/bin/bitcoind \
|
||||
${BITCOIN_PREFIX}/lib/libbitcoinconsensus.a \
|
||||
${BITCOIN_PREFIX}/lib/libbitcoinconsensus.so.0.0.0 && \
|
||||
make clean
|
||||
|
||||
# Runtime binaries and setup stage
|
||||
FROM --platform=${TARGETPLATFORM:-${BUILDPLATFORM:-linux/amd64}} alpine:3.18 as runner
|
||||
@@ -95,8 +97,8 @@ ARG GID=101
|
||||
LABEL maintainer.0="Lakshya Singh (@king-11)" \
|
||||
maintainer.1="Dev Random (@devrandom01)"
|
||||
|
||||
RUN addgroup bitcoin --gid ${GID} --system
|
||||
RUN adduser --uid ${UID} --system bitcoin --ingroup bitcoin
|
||||
RUN addgroup bitcoin --gid ${GID} --system && \
|
||||
adduser --uid ${UID} --system bitcoin --ingroup bitcoin
|
||||
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-filesystem \
|
||||
|
||||
Reference in New Issue
Block a user