multi-stage build
This commit is contained in:
parent
26746e11fc
commit
d9608da68a
@ -1,5 +1,4 @@
|
|||||||
FROM debian:bullseye-slim
|
FROM debian:bullseye-slim as base
|
||||||
|
|
||||||
ARG UID=101
|
ARG UID=101
|
||||||
ARG GID=101
|
ARG GID=101
|
||||||
|
|
||||||
@ -7,23 +6,23 @@ LABEL maintainer.0="João Fonseca (@joaopaulofonseca)" \
|
|||||||
maintainer.1="Pedro Branco (@pedrobranco)" \
|
maintainer.1="Pedro Branco (@pedrobranco)" \
|
||||||
maintainer.2="Rui Marinho (@ruimarinho)"
|
maintainer.2="Rui Marinho (@ruimarinho)"
|
||||||
|
|
||||||
RUN groupadd --gid ${GID} bitcoin \
|
|
||||||
&& useradd --create-home --no-log-init -u ${UID} -g ${GID} bitcoin \
|
|
||||||
&& apt-get update -y \
|
|
||||||
&& apt-get install -y curl gnupg gosu \
|
|
||||||
&& apt-get install -y git autoconf automake build-essential libboost-filesystem-dev libboost-system-dev libboost-thread-dev libevent-dev libsqlite3-dev libtool pkg-config libzmq3-dev --no-install-recommends \
|
|
||||||
&& apt-get clean \
|
|
||||||
&& rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
|
|
||||||
|
|
||||||
ARG TARGETPLATFORM
|
|
||||||
ENV BITCOIN_VERSION=24.0.1
|
ENV BITCOIN_VERSION=24.0.1
|
||||||
ENV BITCOIN_DATA=/home/bitcoin/.bitcoin
|
ENV BITCOIN_DATA=/home/bitcoin/.bitcoin
|
||||||
ENV PATH=/opt/bitcoin-${BITCOIN_VERSION}/bin:$PATH
|
ENV PATH=/opt/bitcoin-${BITCOIN_VERSION}/bin:$PATH
|
||||||
|
|
||||||
|
RUN groupadd --gid ${GID} bitcoin \
|
||||||
|
&& useradd --create-home --no-log-init -u ${UID} -g ${GID} bitcoin
|
||||||
|
|
||||||
|
FROM base as builder
|
||||||
|
|
||||||
|
RUN apt-get update -y \
|
||||||
|
&& apt-get install -y curl gnupg git ca-certificates autoconf automake build-essential \
|
||||||
|
libboost-filesystem-dev libboost-system-dev libboost-thread-dev libevent-dev \
|
||||||
|
libsqlite3-dev libtool pkg-config libzmq3-dev --no-install-recommends \
|
||||||
|
&& apt-get clean \
|
||||||
|
&& rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
|
||||||
|
|
||||||
RUN set -ex \
|
RUN set -ex \
|
||||||
&& if [ "${TARGETPLATFORM}" = "linux/amd64" ]; then export TARGETPLATFORM=x86_64-linux-gnu; fi \
|
|
||||||
&& if [ "${TARGETPLATFORM}" = "linux/arm64" ]; then export TARGETPLATFORM=aarch64-linux-gnu; fi \
|
|
||||||
&& if [ "${TARGETPLATFORM}" = "linux/arm/v7" ]; then export TARGETPLATFORM=arm-linux-gnueabihf; fi \
|
|
||||||
&& for key in \
|
&& for key in \
|
||||||
152812300785C96444D3334D17565732E08E5E41 \
|
152812300785C96444D3334D17565732E08E5E41 \
|
||||||
0AD83877C1F0CD1EE9BD660AD7CC770B81FD22A8 \
|
0AD83877C1F0CD1EE9BD660AD7CC770B81FD22A8 \
|
||||||
@ -57,6 +56,7 @@ RUN set -ex \
|
|||||||
RUN cd /build/bitcoin-${BITCOIN_VERSION} && \
|
RUN cd /build/bitcoin-${BITCOIN_VERSION} && \
|
||||||
./autogen.sh && \
|
./autogen.sh && \
|
||||||
./configure \
|
./configure \
|
||||||
|
--prefix=/opt/bitcoin-${BITCOIN_VERSION} \
|
||||||
--disable-wallet \
|
--disable-wallet \
|
||||||
--disable-bench \
|
--disable-bench \
|
||||||
--disable-gui-tests \
|
--disable-gui-tests \
|
||||||
@ -74,14 +74,16 @@ RUN cd /build/bitcoin-${BITCOIN_VERSION} && \
|
|||||||
make -j$(nproc) && \
|
make -j$(nproc) && \
|
||||||
make install
|
make install
|
||||||
|
|
||||||
|
FROM base as runner
|
||||||
|
RUN apt-get update -y \
|
||||||
|
&& apt-get install -y gosu libevent-2.1-7 libevent-pthreads-2.1-7 libzmq5 \
|
||||||
|
&& apt-get clean \
|
||||||
|
&& rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
|
||||||
|
|
||||||
|
COPY --from=builder /opt/bitcoin-${BITCOIN_VERSION} /opt/bitcoin-${BITCOIN_VERSION}
|
||||||
COPY docker-entrypoint.sh /entrypoint.sh
|
COPY docker-entrypoint.sh /entrypoint.sh
|
||||||
|
|
||||||
VOLUME ["/home/bitcoin/.bitcoin"]
|
VOLUME ["/home/bitcoin/.bitcoin"]
|
||||||
|
|
||||||
EXPOSE 8332 8333 18332 18333 18443 18444 38333 38332
|
EXPOSE 8332 8333 18332 18333 18443 18444 38333 38332
|
||||||
|
|
||||||
ENTRYPOINT ["/entrypoint.sh"]
|
ENTRYPOINT ["/entrypoint.sh"]
|
||||||
|
|
||||||
RUN bitcoind -version | grep "Bitcoin Core version v${BITCOIN_VERSION}"
|
RUN bitcoind -version | grep "Bitcoin Core version v${BITCOIN_VERSION}"
|
||||||
|
|
||||||
CMD ["bitcoind"]
|
CMD ["bitcoind"]
|
||||||
|
Loading…
Reference in New Issue
Block a user