2021-07-07 14:02:38 +02:00
|
|
|
# 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.
|
|
|
|
|
2022-11-06 18:23:39 +01:00
|
|
|
FROM debian:bookworm-slim as base
|
2021-07-07 14:02:38 +02:00
|
|
|
RUN apt-get update -qqy
|
2022-09-12 21:01:27 +02:00
|
|
|
RUN apt-get install -qqy librocksdb-dev wget
|
2021-07-07 14:02:38 +02:00
|
|
|
|
|
|
|
### Electrum Rust Server ###
|
|
|
|
FROM base as electrs-build
|
2023-06-28 17:39:15 +02:00
|
|
|
RUN apt-get install -qqy cargo clang cmake
|
2021-07-07 14:02:38 +02:00
|
|
|
|
|
|
|
# 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 ###
|
|
|
|
FROM base as bitcoin-build
|
|
|
|
# Download
|
|
|
|
WORKDIR /build/bitcoin
|
2023-06-28 17:39:15 +02:00
|
|
|
ARG ARCH=x86_64
|
2024-10-07 16:55:17 +02:00
|
|
|
ARG BITCOIND_VERSION=28.0
|
2023-06-28 17:39:15 +02:00
|
|
|
RUN wget -q https://bitcoincore.org/bin/bitcoin-core-$BITCOIND_VERSION/bitcoin-$BITCOIND_VERSION-$ARCH-linux-gnu.tar.gz
|
|
|
|
RUN tar xvf bitcoin-$BITCOIND_VERSION-$ARCH-linux-gnu.tar.gz
|
2021-07-07 14:02:38 +02:00
|
|
|
RUN mv -v bitcoin-$BITCOIND_VERSION/bin/bitcoind .
|
|
|
|
RUN mv -v bitcoin-$BITCOIND_VERSION/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/
|
2022-11-06 18:23:39 +01:00
|
|
|
RUN apt-get install -qqy git libsecp256k1-1 python3-cryptography python3-setuptools python3-venv python3-pip jq curl
|
2021-07-07 14:02:38 +02:00
|
|
|
RUN git clone --recurse-submodules https://github.com/spesmilo/electrum/ && cd electrum/ && git log -1
|
2022-11-06 18:23:39 +01:00
|
|
|
RUN python3 -m venv --system-site-packages venv && \
|
2024-10-12 11:36:46 +02:00
|
|
|
ELECTRUM_ECC_DONT_COMPILE=1 venv/bin/pip install -e electrum/ && \
|
2022-11-06 18:23:39 +01:00
|
|
|
ln /build/venv/bin/electrum /usr/bin/electrum
|
2021-07-07 14:02:38 +02:00
|
|
|
|
|
|
|
RUN electrum version --offline
|
|
|
|
WORKDIR /
|