# Important: This file is provided for demonstration purposes and may NOT be suitable for production use. # The maintainers of electrs are not deeply familiar with Docker, so you should DYOR. # If you are not familiar with Docker either it's probably be safer to NOT use it. FROM debian:trixie-slim AS base RUN apt-get update -qqy RUN apt-get install -qqy librocksdb-dev libsqlite3-dev libevent-dev libboost-dev wget ### Electrum Rust Server ### FROM base AS electrs-build RUN apt-get install -qqy cargo build-essential libclang-dev # Install electrs WORKDIR /build/electrs COPY . . ENV ROCKSDB_INCLUDE_DIR=/usr/include ENV ROCKSDB_LIB_DIR=/usr/lib RUN cargo install --locked --path . ### Bitcoin Core (custom build for /blockpart/ REST endpoint) ### FROM base AS bitcoin-build # Download WORKDIR /build/bitcoin RUN wget -q https://bitcoincore.org/bin/bitcoin-core-31.1/bitcoin-31.1-x86_64-linux-gnu.tar.gz RUN tar xvf bitcoin-31.1-x86_64-linux-gnu.tar.gz RUN mv -v bitcoin-31.1/bin/bitcoind . RUN mv -v bitcoin-31.1/bin/bitcoin-cli . FROM base AS result # Copy the binaries COPY --from=electrs-build /root/.cargo/bin/electrs /usr/bin/electrs COPY --from=bitcoin-build /build/bitcoin/bitcoind /build/bitcoin/bitcoin-cli /usr/bin/ RUN bitcoind -version && bitcoin-cli -version ### Electrum ### # Clone latest Electrum wallet and a few test tools WORKDIR /build/ RUN apt-get install -qqy git libsecp256k1-2 python3-cryptography python3-setuptools python3-venv python3-pip jq curl RUN git clone --recurse-submodules https://github.com/spesmilo/electrum/ && cd electrum/ && git log -1 RUN python3 -m venv --system-site-packages venv && \ ELECTRUM_ECC_DONT_COMPILE=1 venv/bin/pip install -e electrum/ && \ ln /build/venv/bin/electrum /usr/bin/electrum RUN electrum version --offline WORKDIR /