build container with binaries
This commit is contained in:
@@ -4,76 +4,38 @@ ARG DEBIAN_BASE=debian:bookworm-slim
|
|||||||
FROM ${DEBIAN_BASE} AS builder
|
FROM ${DEBIAN_BASE} AS builder
|
||||||
ARG DOGECOIN_VERSION
|
ARG DOGECOIN_VERSION
|
||||||
ARG TARGETARCH
|
ARG TARGETARCH
|
||||||
|
ARG BINARY_ARCH
|
||||||
|
|
||||||
RUN apt-get update && apt-get install -y --no-install-recommends \
|
RUN apt-get update && apt-get install -y --no-install-recommends \
|
||||||
build-essential \
|
wget \
|
||||||
libtool \
|
tar \
|
||||||
autotools-dev \
|
|
||||||
automake \
|
|
||||||
pkg-config \
|
|
||||||
bsdmainutils \
|
|
||||||
python3 \
|
|
||||||
libevent-dev \
|
|
||||||
libssl-dev \
|
|
||||||
libboost-dev \
|
|
||||||
libboost-system-dev \
|
|
||||||
libboost-filesystem-dev \
|
|
||||||
libboost-program-options-dev \
|
|
||||||
libboost-thread-dev \
|
|
||||||
libminiupnpc-dev \
|
|
||||||
libzmq3-dev \
|
|
||||||
git \
|
git \
|
||||||
|
gnupg \
|
||||||
ca-certificates && \
|
ca-certificates && \
|
||||||
apt-get clean && \
|
apt-get clean && \
|
||||||
rm -rf /var/lib/apt/lists/*
|
rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
WORKDIR /tmp
|
WORKDIR /tmp
|
||||||
RUN git clone --depth 1 --branch v${DOGECOIN_VERSION} https://github.com/dogecoin/dogecoin.git
|
RUN if [ "$TARGETARCH" = "amd64" ]; then \
|
||||||
|
BINARY_ARCH="x86_64"; \
|
||||||
|
elif [ "$TARGETARCH" = "arm64" ]; then \
|
||||||
|
BINARY_ARCH="aarch64"; \
|
||||||
|
else \
|
||||||
|
echo "Unsupported architecture: $TARGETARCH" && exit 1; \
|
||||||
|
fi && \
|
||||||
|
wget https://github.com/dogecoin/dogecoin/releases/download/v${DOGECOIN_VERSION}/dogecoin-${DOGECOIN_VERSION}-${BINARY_ARCH}-linux-gnu.tar.gz && \
|
||||||
|
wget https://github.com/dogecoin/dogecoin/releases/download/v${DOGECOIN_VERSION}/SHA256SUMS.asc && \
|
||||||
|
git clone --depth 1 --shallow-submodules https://github.com/dogecoin/dogecoin && \
|
||||||
|
gpg --import dogecoin/contrib/gitian-keys/*.pgp && \
|
||||||
|
gpg --verify SHA256SUMS.asc && \
|
||||||
|
tar -xzvf dogecoin-${DOGECOIN_VERSION}-${BINARY_ARCH}-linux-gnu.tar.gz --strip-components=1 -C /tmp/dogecoin
|
||||||
|
|
||||||
WORKDIR /tmp/dogecoin
|
FROM debian:bookworm-slim
|
||||||
RUN ldconfig -p | grep boost || true && \
|
|
||||||
ldconfig -p | grep ssl || true && \
|
|
||||||
find /usr -name libboost_filesystem.pc || true && \
|
|
||||||
find /usr -name libssl.pc || true && \
|
|
||||||
echo "PKG_CONFIG_PATH=/usr/lib/${TARGETARCH}-linux-gnu/pkgconfig:/usr/lib/pkgconfig" && \
|
|
||||||
export PKG_CONFIG_PATH=/usr/lib/${TARGETARCH}-linux-gnu/pkgconfig:/usr/lib/pkgconfig && \
|
|
||||||
pkg-config --libs --cflags libboost_filesystem || echo "pkg-config failed for filesystem, continuing..." && \
|
|
||||||
pkg-config --libs --cflags libssl || echo "pkg-config failed for libssl, continuing..." && \
|
|
||||||
echo "Target architecture: ${TARGETARCH}"
|
|
||||||
|
|
||||||
RUN ./autogen.sh && \
|
|
||||||
./configure --without-gui --disable-wallet --disable-tests \
|
|
||||||
LDFLAGS="-L/usr/lib -L/usr/lib/${TARGETARCH}-linux-gnu -lboost_filesystem -lboost_system -lboost_program_options -lboost_thread -lssl -lcrypto" \
|
|
||||||
CPPFLAGS="-I/usr/include" \
|
|
||||||
PKG_CONFIG_PATH="/usr/lib/${TARGETARCH}-linux-gnu/pkgconfig:/usr/lib/pkgconfig" && \
|
|
||||||
make && \
|
|
||||||
strip src/dogecoind src/dogecoin-cli src/dogecoin-tx && \
|
|
||||||
make install DESTDIR=/opt/dogecoin && \
|
|
||||||
find /opt/dogecoin -type f -name '*.a' -delete && \
|
|
||||||
find /opt/dogecoin -type f -name '*.h' -delete && \
|
|
||||||
find /opt/dogecoin -type d -name 'include' -exec rm -rf {} + && \
|
|
||||||
rm -rf /tmp/dogecoin /tmp/* /var/cache/* /var/log/*
|
|
||||||
|
|
||||||
FROM ${DEBIAN_BASE}
|
|
||||||
ARG DOGECOIN_VERSION
|
ARG DOGECOIN_VERSION
|
||||||
|
|
||||||
RUN apt-get update && apt-get install -y --no-install-recommends \
|
COPY --from=builder /tmp/dogecoin /opt/dogecoin
|
||||||
libevent-pthreads-2.1-7 \
|
|
||||||
libssl3 \
|
|
||||||
libboost-system1.74.0 \
|
|
||||||
libboost-filesystem1.74.0 \
|
|
||||||
libboost-program-options1.74.0 \
|
|
||||||
libboost-thread1.74.0 \
|
|
||||||
libminiupnpc17 \
|
|
||||||
libzmq5 && \
|
|
||||||
apt-get clean && \
|
|
||||||
rm -rf /var/lib/apt/lists/* /var/cache/* /var/log/*
|
|
||||||
|
|
||||||
COPY --from=builder /opt/dogecoin/usr/local/bin/dogecoind /usr/local/bin/
|
ENV PATH="$PATH:/opt/dogecoin/bin"
|
||||||
COPY --from=builder /opt/dogecoin/usr/local/bin/dogecoin-cli /usr/local/bin/
|
|
||||||
COPY --from=builder /opt/dogecoin/usr/local/bin/dogecoin-tx /usr/local/bin/
|
|
||||||
|
|
||||||
ENV PATH="$PATH:/usr/local/bin"
|
|
||||||
|
|
||||||
VOLUME ["/app/dogecoin"]
|
VOLUME ["/app/dogecoin"]
|
||||||
|
|
||||||
@@ -81,5 +43,5 @@ EXPOSE 22556
|
|||||||
|
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
|
|
||||||
CMD ["/usr/local/bin/dogecoind", "-printtoconsole", "-datadir=/app/dogecoin"]
|
CMD ["/opt/dogecoin/bin/dogecoind", "-printtoconsole", "-datadir=/app/dogecoin"]
|
||||||
LABEL name="dogecoin-node" version="${DOGECOIN_VERSION}" description="Dogecoin node container based on Debian"
|
LABEL name="dogecoin-node" version="${DOGECOIN_VERSION}" description="Dogecoin node container based on Debian"
|
||||||
Reference in New Issue
Block a user