Skip to content

Conversation

@maltokyo
Copy link
Contributor

bump version
@maltokyo
Copy link
Contributor Author

@lukechilds could you please check, and let me know if ok for you

@theborakompanioni
Copy link

Would be nice to see 🙏

@theborakompanioni
Copy link

@maltokyo v1.18.0 already out.
@lukechilds Any interest in merging this or just fork off?

@maltokyo
Copy link
Contributor Author

Without response here, I now just build my own, shame this one is unmaintained

@lukechilds
Copy link
Owner

Apologies guys, I've been very busy on other things. Have you tested this and it's working? I'll merge now if so.

@lukechilds
Copy link
Owner

@maltokyo this fails to build for me:

7.244 (17/31) Installing py3-brotli-pyc (1.1.0-r2)
7.260 (18/31) Installing py3-charset-normalizer (3.4.0-r0)
7.280 (19/31) Installing py3-charset-normalizer-pyc (3.4.0-r0)
7.299 (20/31) Installing py3-idna (3.10-r0)
7.317 (21/31) Installing py3-idna-pyc (3.10-r0)
7.342 (22/31) Installing py3-idna-ssl (1.1.0-r9)
7.363 (23/31) Installing py3-idna-ssl-pyc (1.1.0-r9)
7.384 (24/31) Installing py3-multidict (6.0.5-r1)
7.440 (25/31) Installing py3-multidict-pyc (6.0.5-r1)
7.477 (26/31) Installing py3-yarl (1.13.1-r0)
7.507 (27/31) Installing py3-yarl-pyc (1.13.1-r0)
7.531 (28/31) Installing py3-aiohttp-pyc (3.10.9-r0)
7.572 (29/31) Installing python3-pyc (3.12.11-r0)
7.572 (30/31) Installing py3-aiohappyeyeballs (2.4.4-r0)
7.595 (31/31) Installing py3-aiohttp (3.10.9-r0)
7.633 Executing busybox-1.37.0-r12.trigger
7.638 OK: 302 MiB in 110 packages
8.206 ERROR: unknown command "python-rocksdb"
------

 7 warnings found (use docker --debug to expand):
 - LegacyKeyValueFormat: "ENV key=value" should be used instead of legacy "ENV key value" format (line 28)
 - LegacyKeyValueFormat: "ENV key=value" should be used instead of legacy "ENV key value" format (line 29)
 - LegacyKeyValueFormat: "ENV key=value" should be used instead of legacy "ENV key value" format (line 30)
 - LegacyKeyValueFormat: "ENV key=value" should be used instead of legacy "ENV key value" format (line 23)
 - LegacyKeyValueFormat: "ENV key=value" should be used instead of legacy "ENV key value" format (line 24)
 - LegacyKeyValueFormat: "ENV key=value" should be used instead of legacy "ENV key value" format (line 25)
 - LegacyKeyValueFormat: "ENV key=value" should be used instead of legacy "ENV key value" format (line 26)
Dockerfile:10
--------------------
   9 |     
  10 | >>> RUN chmod a+x /usr/local/bin/* && \
  11 | >>>     apk add --no-cache git build-base openssl && \
  12 | >>>     apk add --no-cache --repository http://dl-cdn.alpinelinux.org/alpine/v3.21/community leveldb-dev && \
  13 | >>>     apk add --no-cache --repository http://dl-cdn.alpinelinux.org/alpine/v3.21/community rocksdb-dev && \
  14 | >>>     apk add --no-cache --repository http://dl-cdn.alpinelinux.org/alpine/v3.21/community py3-aiohttp && \
  15 | >>>     pip3 python-rocksdb && \
  16 | >>>     git clone -b $VERSION https://github.com/spesmilo/electrumx.git && \
  17 | >>>     cd electrumx && \
  18 | >>>     pip3 install . && \
  19 | >>>     apk del git build-base && \
  20 | >>>     rm -rf /tmp/*
  21 |     
--------------------
ERROR: failed to solve: process "/bin/sh -c chmod a+x /usr/local/bin/* &&     apk add --no-cache git build-base openssl &&     apk add --no-cache --repository http://dl-cdn.alpinelinux.org/alpine/v3.21/community leveldb-dev &&     apk add --no-cache --repository http://dl-cdn.alpinelinux.org/alpine/v3.21/community rocksdb-dev &&     apk add --no-cache --repository http://dl-cdn.alpinelinux.org/alpine/v3.21/community py3-aiohttp &&     pip3 python-rocksdb &&     git clone -b $VERSION https://github.com/spesmilo/electrumx.git &&     cd electrumx &&     pip3 install . &&     apk del git build-base &&     rm -rf /tmp/*" did not complete successfully: exit code: 1

@theborakompanioni
Copy link

@maltokyo this fails to build for me:

Same here @maltokyo

PS: Since it is open source, no shaming initial maintainers 🫂
Thanks for your work @lukechilds 🙏

@maltokyo
Copy link
Contributor Author

Sorry I just built offline, as I thought this was not maintained. No time these weeks, would be good if someone else could pick up with 1.18

@lukechilds
Copy link
Owner

All good! Very limited on time atm but if anyone wants to pick this up I'll try and be more responsive at giving things a quick test and merge.

@maltokyo maltokyo changed the title version 1.17.0 version 1.18.0 Aug 23, 2025
@maltokyo
Copy link
Contributor Author

maltokyo commented Aug 23, 2025

@lukechilds @theborakompanioni I got some time to do this today. Luke please could you check, and merge when you can.

I tested this by the way, it now builds fine for me.

@lukechilds
Copy link
Owner

It builds for me but fails to run due to missing uvloop dependency:

docker-electrumx patch-1  in 4s 
❯ docker buildx build --tag electrumx:1.18.0 .
[+] Building 21.7s (9/9) FINISHED                                                                                                                                                                      docker:orbstack
 => [internal] load build definition from Dockerfile                                                                                                                                                              0.0s
 => => transferring dockerfile: 801B                                                                                                                                                                              0.0s
 => [internal] load metadata for docker.io/library/python:3.13-alpine                                                                                                                                             1.7s
 => [internal] load .dockerignore                                                                                                                                                                                 0.8s
 => => transferring context: 2B                                                                                                                                                                                   0.0s
 => [internal] load build context                                                                                                                                                                                 0.0s
 => => transferring context: 53B                                                                                                                                                                                  0.0s
 => [1/4] FROM docker.io/library/python:3.13-alpine@sha256:9ba6d8cbebf0fb6546ae71f2a1c14f6ffd2fdab83af7fa5669734ef30ad48844                                                                                       1.6s
 => => resolve docker.io/library/python:3.13-alpine@sha256:9ba6d8cbebf0fb6546ae71f2a1c14f6ffd2fdab83af7fa5669734ef30ad48844                                                                                       0.2s
 => => sha256:9ba6d8cbebf0fb6546ae71f2a1c14f6ffd2fdab83af7fa5669734ef30ad48844 10.29kB / 10.29kB                                                                                                                  0.0s
 => => sha256:588270f913bc82b4dbeee27bc249e4d314894becd18cccdc13645f669972c91e 1.74kB / 1.74kB                                                                                                                    0.0s
 => => sha256:b2236d9e1563c507613962c1ebbd7b3d307969ec2ee355b781b68440f4f0bee3 5.21kB / 5.21kB                                                                                                                    0.0s
 => => sha256:6e174226ea690ced550e5641249a412cdbefd2d09871f3e64ab52137a54ba606 4.13MB / 4.13MB                                                                                                                    0.6s
 => => sha256:26a1da51444d4cbbba3233caa342d0397ac4f93dc8e305e31989fd782b3107da 449.57kB / 449.57kB                                                                                                                0.8s
 => => sha256:c879780ac011609647c8714eef9e6490c42bf20128b32f4b31c4daad1242647b 12.39MB / 12.39MB                                                                                                                  1.1s
 => => extracting sha256:6e174226ea690ced550e5641249a412cdbefd2d09871f3e64ab52137a54ba606                                                                                                                         0.1s
 => => sha256:f9841e55dcbf5a6fcc702b25ce6e411ebdcb30680f94afd8060cb20bb20bd75c 250B / 250B                                                                                                                        0.9s
 => => extracting sha256:26a1da51444d4cbbba3233caa342d0397ac4f93dc8e305e31989fd782b3107da                                                                                                                         0.0s
 => => extracting sha256:c879780ac011609647c8714eef9e6490c42bf20128b32f4b31c4daad1242647b                                                                                                                         0.2s
 => => extracting sha256:f9841e55dcbf5a6fcc702b25ce6e411ebdcb30680f94afd8060cb20bb20bd75c                                                                                                                         0.0s
 => [2/4] COPY ./bin /usr/local/bin                                                                                                                                                                               0.7s
 => [3/4] RUN chmod a+x /usr/local/bin/* &&     apk add --no-cache git build-base leveldb-dev openssl &&     git clone --depth 1 --branch 1.18.0 https://github.com/spesmilo/electrumx.git &&     cd electrumx   16.4s
 => [4/4] WORKDIR /data                                                                                                                                                                                           0.0s 
 => exporting to image                                                                                                                                                                                            0.1s 
 => => exporting layers                                                                                                                                                                                           0.1s 
 => => writing image sha256:b6805ba4405bd79e3d9a0fcb64ae0db596f6c7ec6c36b9399f743da4cf643330                                                                                                                      0.0s 
 => => naming to docker.io/library/electrumx:1.18.0                                                                                                                                                               0.0s 

docker-electrumx patch-1  in 22s 
❯ docker run -it electrumx:1.18.0
.+..+...+.........+++++++++++++++++++++++++++++++++++++++*.......+......+......+..+++++++++++++++++++++++++++++++++++++++*...+......+....+......+..+....+...+...........+.......+...+......+.....+.+..............+.........++++++
.+.....+...+..........+...+++++++++++++++++++++++++++++++++++++++*.........+.....+.+..+.+.....+.+.....+....+...........+...+..........+..+.+++++++++++++++++++++++++++++++++++++++*.+.......+..+.+..............+......+.+......+.........+.....+.+..+......+.......+...+.....+............+...++++++
-----
INFO:electrumx:ElectrumX server starting
ERROR:electrumx:ElectrumX server terminated abnormally
Traceback (most recent call last):
  File "/electrumx/src/electrumx/cli/electrumx_server.py", line 31, in main
    env = Env()
  File "/electrumx/src/electrumx/server/env.py", line 38, in __init__
    super().__init__()
    ~~~~~~~~~~~~~~~~^^
  File "/electrumx/src/electrumx/lib/env_base.py", line 25, in __init__
    self.loop_policy = self.event_loop_policy()
                       ~~~~~~~~~~~~~~~~~~~~~~^^
  File "/electrumx/src/electrumx/lib/env_base.py", line 77, in event_loop_policy
    import uvloop
ModuleNotFoundError: No module named 'uvloop'

@maltokyo
Copy link
Contributor Author

Apologies @lukechilds - I didn't see that in dependencies in the electrumx server docs. I think I have fixed that, could you please try again (sorry, I don't have a server accessible to test on at the moment).

@maltokyo
Copy link
Contributor Author

Ok, after a lot os screwing around trying to get it to work in Alpine (I failed) I switched over to Debian slim.

Everything testing, and the container runs fine.

Please merge @lukechilds

@lukechilds
Copy link
Owner

lukechilds commented Aug 24, 2025

Thanks @maltokyo

I didn't see that in dependencies in the electrumx server docs.

Yeah it's not a requirement, it's something i added in this project to workaround this bug:
spesmilo/electrumx#92 (comment)

Thanks for your help, I have tweaked the dockerfile slightly and split things up into separate commits. I have given you commit credits in this commit 5fdabd7

Thanks for your help!

@lukechilds lukechilds closed this Aug 24, 2025
@maltokyo
Copy link
Contributor Author

Made PR for BTCPay Server, as this is a breaking change. I dont know which other apps use your image @lukechilds, but better to let them know if you know of any.
btcpayserver/btcpayserver-docker#1005

@lukechilds
Copy link
Owner

I think we can just auto handle it in the init script to migrate old env vars over. And we can just default to Bitcoin so most users don't need to manually set it. Working on it now.

@lukechilds
Copy link
Owner

lukechilds commented Aug 24, 2025

This should handle it automatically: bcaeabf. The COIN value is no longer required and is set to Bitcoin by default. If someone has the old BitcoinSegwit value set we will automatically overwrite it to Bitcoin before starting electrumx.

@maltokyo
Copy link
Contributor Author

great, thanks!!

@maltokyo maltokyo deleted the patch-1 branch August 24, 2025 18:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants