Dockerfile

This commit is contained in:
2022-10-19 06:26:34 -04:00
commit 4cfcc8efeb
4 changed files with 111 additions and 0 deletions

29
Docker/Dockerfile Normal file
View File

@@ -0,0 +1,29 @@
# syntax=docker/dockerfile:3
FROM alpine:3.15
#SHELL ["/bin/ash", "-ex", "-c"]
ENV ELECTRUM_USER=api
ENV ELECTRUM_PASSWORD=changeme
ENV HOME=/home/electrum
#ENV TESTNET=false
EXPOSE 7000
RUN adduser -D -h $HOME electrum
RUN apk --no-cache add electrum
USER electrum
WORKDIR $HOME
ENTRYPOINT test "$ELECTRUM_TESTNET" = 1 -o "$ELECTRUM_TESTNET" = true && FLAGS='--testnet' ;\
electrum --offline $FLAGS setconfig rpcuser ${ELECTRUM_USER} ;\
electrum --offline $FLAGS setconfig rpcpassword ${ELECTRUM_PASSWORD} ;\
electrum --offline $FLAGS setconfig rpchost 0.0.0.0 ;\
electrum --offline $FLAGS setconfig rpcport 7000 ;\
#electrum --offline $FLAGS create ;\
exec electrum $FLAGS daemon

47
README.md Normal file
View File

@@ -0,0 +1,47 @@
# Intro
[Electrum client](https://electrum.org/) is light bitcoin wallet software operates through supernodes (Electrum server instances actually).
Electrum client running as a daemon in docker container with JSON-RPC API enabled.
# Usage
Here are some example snippets to help you get started creating a container.
## docker-compose
```yaml
version: "3"
services:
electrum:
image: bitdeals/electrum
environment:
- ELECTRUM_TESTNET=0
- ELECTRUM_API_USER=<username>
- ELECTRUM_API_PASSWORD=<password>
ports:
- 7000:7000
```
## docker cli
```sh
docker run -d \
-e ELECTRUM_TESTNET=0 \
-e ELECTRUM_API_USER=api \
-e ELECTRUM_API_PASSWORD=changeme \
-p 127.0.0.1:7000:7000 \
bitdeals/electrum
```
# Parameters
Container images are configured using parameters passed at runtime.
|Parameter|Function|
|:--------|:-------|
|-p 7000|JSON-RPC API port TCP|
|-e ELECTRUM_TESTNET=|Set 1 to enable bitcoin testnet mode. Default: `0`|
|-e ELECTRUM_API_USER=|JSON-RPC API user. Default: `api`|
|-e ELECTRUM_API_PASSWORD=|JSON-RPC API password. Default: `changeme`|

11
docker-compose.yml Normal file
View File

@@ -0,0 +1,11 @@
version: '3.9'
services:
electrum:
image: bitdeals/electrum:4.1.5-alpine
environment:
- ELECTRUM_API_USER=electrum_api_user
- ELECTRUM_API_PASSWORD=electrum_api_password
- ELECTRUM_TESTNET=1
ports:
- 7000:7000

24
electrum-appimage.service Normal file
View File

@@ -0,0 +1,24 @@
[Unit]
Description=Electrum appimage service
Documentation=https://electrum.readthedocs.io/en/latest/jsonrpc.html
ConditionPathExists=/home/electrum/electrum.AppImage
After=network.target
Wants=network.target
[Service]
Type=simple
ExecStart=/home/electrum/electrum.AppImage daemon
#ExecStartPost=/home/electrum/electrum.AppImage --testnet daemon load_wallet -w /home/electrum/.electrum/testnet/wallets/default_wallet
WorkingDirectory=/home/electrum
Restart=always
RestartSec=10
SyslogIdentifier=electrum
User=electrum
Group=electrum
PrivateTmp=yes
ProtectSystem=full
[Install]
WantedBy=multi-user.target