1
0
mirror of https://github.com/bitcoin/bips.git synced 2026-03-09 15:53:54 +00:00
Files
bips/bip-0360/ref-impl/common/utils/workshop/Dockerfile.bcli

89 lines
2.3 KiB
Docker
Raw Normal View History

# 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"]