diff --git a/CHECKSUM_SHA512 b/CHECKSUM_SHA512 new file mode 100644 index 0000000..601bf4f --- /dev/null +++ b/CHECKSUM_SHA512 @@ -0,0 +1 @@ +5f756da4d2df59c69997925c69f651011def07bfbdbc582f492ecc19386eee7d79b9951732a792e6041da902d776052d6590cbd2d7004bc93c8406bcf9093fe6 diff --git a/Dockerfile b/Dockerfile index d3fd618..ba82147 100644 --- a/Dockerfile +++ b/Dockerfile @@ -3,8 +3,9 @@ FROM python:3.9.12-alpine ARG BUILD_DATE ARG VCS_REF ARG VERSION +ARG CHECKSUM_SHA512 LABEL maintainer="osintsev@gmail.com" \ - org.label-schema.vendor="Distirbuted Solutions, Inc." \ + org.label-schema.vendor="Boroda Group" \ org.label-schema.build-date=$BUILD_DATE \ org.label-schema.name="Electrum wallet (RPC enabled)" \ org.label-schema.description="Electrum wallet with JSON-RPC enabled (daemon mode)" \ @@ -21,16 +22,31 @@ ENV ELECTRUM_VERSION $VERSION ENV ELECTRUM_USER electrum ENV ELECTRUM_PASSWORD electrumz # XXX: CHANGE REQUIRED! ENV ELECTRUM_HOME /home/$ELECTRUM_USER - -RUN apk --update-cache add --virtual build-dependencies gcc musl-dev && \ - apk add libsecp256k1 && \ - adduser -D $ELECTRUM_USER && \ - pip3 install pycryptodomex https://download.electrum.org/${ELECTRUM_VERSION}/Electrum-${ELECTRUM_VERSION}.tar.gz && \ - apk del build-dependencies +ENV ELECTRUM_NETWORK mainnet RUN mkdir -p /data ${ELECTRUM_HOME} && \ ln -sf /data ${ELECTRUM_HOME}/.electrum && \ chown ${ELECTRUM_USER} ${ELECTRUM_HOME}/.electrum /data +======= +# IMPORTANT: always verify gpg signature before changing a hash here! +ENV ELECTRUM_CHECKSUM_SHA512 $CHECKSUM_SHA512 + +RUN adduser -D $ELECTRUM_USER && \ + apk --no-cache add --virtual build-dependencies gcc musl-dev libsecp256k1 && \ + wget https://download.electrum.org/${ELECTRUM_VERSION}/Electrum-${ELECTRUM_VERSION}.tar.gz && \ + [ "${ELECTRUM_CHECKSUM_SHA512} Electrum-${ELECTRUM_VERSION}.tar.gz" = "$(sha512sum Electrum-${ELECTRUM_VERSION}.tar.gz)" ] && \ + echo -e "**************************\n SHA 512 Checksum OK\n**************************" && \ + pip3 install pycryptodomex Electrum-${ELECTRUM_VERSION}.tar.gz && \ + rm -f Electrum-${ELECTRUM_VERSION}.tar.gz && \ + apk del build-dependencies + +RUN mkdir -p /data \ + ${ELECTRUM_HOME}/.electrum/wallets/ \ + ${ELECTRUM_HOME}/.electrum/testnet/wallets/ \ + ${ELECTRUM_HOME}/.electrum/regtest/wallets/ \ + ${ELECTRUM_HOME}/.electrum/simnet/wallets/ && \ + ln -sf ${ELECTRUM_HOME}/.electrum/ /data && \ + chown -R ${ELECTRUM_USER} ${ELECTRUM_HOME}/.electrum /data USER $ELECTRUM_USER WORKDIR $ELECTRUM_HOME diff --git a/Makefile b/Makefile index 5f992ed..4c138a1 100644 --- a/Makefile +++ b/Makefile @@ -1,4 +1,5 @@ ELECTRUM_VERSION = $(strip $(shell cat VERSION)) +ELECTRUM_CHECKSUM_SHA512 = $(strip $(shell cat CHECKSUM_SHA512)) GIT_COMMIT = $(strip $(shell git rev-parse --short HEAD)) DOCKER_IMAGE ?= osminogin/electrum-daemon @@ -16,6 +17,7 @@ docker_build: @docker build \ --build-arg BUILD_DATE=`date -u +"%Y-%m-%dT%H:%M:%SZ"` \ --build-arg VERSION=$(ELECTRUM_VERSION) \ + --build-arg CHECKSUM_SHA512=$(ELECTRUM_CHECKSUM_SHA512) \ --build-arg VCS_REF=$(GIT_COMMIT) \ -t $(DOCKER_IMAGE):$(DOCKER_TAG) . diff --git a/docker-entrypoint.sh b/docker-entrypoint.sh index 35ffbc2..ae94804 100755 --- a/docker-entrypoint.sh +++ b/docker-entrypoint.sh @@ -1,11 +1,16 @@ #!/usr/bin/env sh set -ex -# Testnet support -if [ "$TESTNET" = true ]; then +# Network switch +if [ "$TESTNET" = true ] || [ "$ELECTRUM_NETWORK" = "testnet" ]; then FLAGS='--testnet' +elif [ "$ELECTRUM_NETWORK" = "regtest" ]; then + FLAGS='--regtest' +elif [ "$ELECTRUM_NETWORK" = "simnet" ]; then + FLAGS='--simnet' fi + # Graceful shutdown trap 'pkill -TERM -P1; electrum daemon stop; exit 0' SIGTERM