mirror of
https://github.com/bitcoin/bips.git
synced 2026-03-09 15:53:54 +00:00
Review comments and assistance by: Armin Sabouri <armins88@gmail.com> D++ <82842780+dplusplus1024@users.noreply.github.com> Jameson Lopp <jameson.lopp@gmail.com> jbride <jbride2001@yahoo.com> Joey Yandle <xoloki@gmail.com> Jon Atack <jon@atack.com> Jonas Nick <jonasd.nick@gmail.com> Kyle Crews <kylecrews@Kyles-Mac-Studio.local> Mark "Murch" Erhardt <murch@murch.one> notmike-5 <notmike-5@users.noreply.github.com> Vojtěch Strnad <43024885+vostrnad@users.noreply.github.com> Co-authored-by: Ethan Heilman <ethan.r.heilman@gmail.com> Co-authored-by: Isabel Foxen Duke <110147802+Isabelfoxenduke@users.noreply.github.com>
89 lines
2.3 KiB
Docker
89 lines
2.3 KiB
Docker
# podman build -f Dockerfile.bcli -t quay.io/jbride2000/p2mr_bcli:0.1 .
|
|
# podman run -it --entrypoint /bin/bash quay.io/jbride200/p2mr_bcli:0.1
|
|
|
|
FROM rust:1-slim-bookworm AS builder
|
|
|
|
# Install build dependencies
|
|
RUN apt-get update && apt-get install -y \
|
|
build-essential \
|
|
cmake \
|
|
git \
|
|
autoconf \
|
|
automake \
|
|
libtool \
|
|
pkg-config \
|
|
zlib1g-dev \
|
|
libevent-dev \
|
|
libboost-dev \
|
|
libzmq3-dev \
|
|
bash \
|
|
python3 \
|
|
python3-pip \
|
|
libclang-dev \
|
|
clang \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
# Set working directory
|
|
WORKDIR /bitcoin
|
|
|
|
# Copy Bitcoin Core source (or clone)
|
|
# COPY . /bitcoin
|
|
RUN git clone --branch p2mr-pqc --single-branch https://github.com/jbride/bitcoin.git
|
|
|
|
# Environment variables for musl
|
|
ENV CC=gcc
|
|
ENV CXX=g++
|
|
|
|
# Build Bitcoin Core
|
|
WORKDIR bitcoin
|
|
|
|
RUN apt-get update && apt-get install -y libsqlite3-dev && rm -rf /var/lib/apt/lists/*
|
|
|
|
RUN mkdir build && cd build && \
|
|
cmake .. \
|
|
-DWITH_ZMQ=ON \
|
|
-DBUILD_BENCH=ON \
|
|
-DBUILD_DAEMON=ON && \
|
|
make -j$(nproc) bitcoin-cli
|
|
|
|
# Runtime stage with Debian Slim
|
|
FROM debian:bookworm-slim
|
|
|
|
# Install minimal runtime dependencies
|
|
RUN apt-get update && apt-get install -y --no-install-recommends \
|
|
bash \
|
|
ca-certificates \
|
|
libevent-core-2.1-7 \
|
|
libevent-pthreads-2.1-7 \
|
|
libevent-extra-2.1-7 \
|
|
libboost-filesystem1.74.0 \
|
|
libboost-thread1.74.0 \
|
|
libzmq5 \
|
|
libsqlite3-0 \
|
|
telnet \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
# Copy bitcoin-cli from builder
|
|
COPY --from=builder /bitcoin/bitcoin/build/bin/bitcoin-cli /usr/local/bin/bitcoin-cli
|
|
|
|
# Create non-root user and set permissions
|
|
RUN groupadd --system bip360 && \
|
|
useradd --system --gid bip360 --shell /bin/bash --create-home bip360 && \
|
|
chmod +x /usr/local/bin/bitcoin-cli && \
|
|
ln -s /usr/local/bin/bitcoin-cli /usr/local/bin/b-cli && \
|
|
echo 'b-cli() { /usr/local/bin/bitcoin-cli -rpcconnect=${RPC_CONNECT:-192.168.122.1} -rpcport=${RPC_PORT:-18443} -rpcuser=${RPC_USER:-signet} -rpcpassword=${RPC_PASSWORD:-signet} "$@"; }' >> /home/bip360/.bashrc
|
|
|
|
# Set default environment variables (can be overridden at runtime)
|
|
ENV RPC_CONNECT=192.168.122.1 \
|
|
RPC_PORT=38332 \
|
|
RPC_USER=signet \
|
|
RPC_PASSWORD=signet
|
|
|
|
# Switch to non-root user
|
|
USER bip360
|
|
|
|
WORKDIR /home/bip360
|
|
|
|
ENTRYPOINT ["/usr/local/bin/bitcoin-cli"]
|
|
|