electrum-container/Containerfile

75 lines
1.8 KiB
Docker

# Copyright 2023 Foster Hangdaan
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
ARG VERSION=v0.10.2
# -----------
# Build Stage
# -----------
FROM docker.io/library/debian:12-slim as builder
RUN set -ex && \
DEBIAN_FRONTEND=noninteractive apt-get update -qqy && \
DEBIAN_FRONTEND=noninteractive apt-get install -qqy librocksdb-dev curl cargo clang cmake git
ARG VERSION
WORKDIR /build
RUN git clone --depth 1 --branch ${VERSION} https://github.com/romanz/electrs.git .
ENV ROCKSDB_INCLUDE_DIR=/usr/include
ENV ROCKSDB_LIB_DIR=/usr/lib
RUN cargo build --locked --release --bin electrs
# -------------
# Runtime Stage
# -------------
FROM docker.io/library/debian:12-slim
LABEL maintainer="Foster Hangdaan <foster@hangdaan.email>"
RUN set -ex && \
DEBIAN_FRONTEND=noninteractive apt-get update -qqy && \
DEBIAN_FRONTEND=noninteractive apt-get install -qqy librocksdb-dev curl
COPY --from=builder /build/target/release/electrs /usr/bin/electrs
RUN adduser --system --group --disabled-password --home /electrs electrs
RUN mkdir -p /etc/electrs
USER electrs
RUN mkdir -p /electrs/db /electrs/.bitcoin /electrs/.electrs
# Data directory
VOLUME /electrs/db
# Bitcoin daemon data
VOLUME /electrs/.bitcoin
# Config directories
VOLUME /etc/electrs /electrs/.electrs
# Electrum RPC - Mainnet
EXPOSE 50001
# Prometheus Monitoring
EXPOSE 4224
ENTRYPOINT ["electrs"]