-
Notifications
You must be signed in to change notification settings - Fork 7
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat(init): use dinit instead of supervisor #69
Conversation
8aef360
to
351d61a
Compare
Good stuff! I'll do my best to test this properly today. |
Thanks. |
I'm usually in favor of doing separate, smaller PRs, but I don't have a strong preference here. You decide! 😁 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nice! Code looks good to me, and I tested it successfully.
I didn't know about dinit
. Looks solid enough, even though it is not super-widely used yet and still alpha (according to their releases). The service hierarchy is indeed very neat, though.
I don't think anything speaks against resolving the "wait for other service to start" issue in this way.
tACK ✅
💪
Yes, let's see if it fits the purpose. I too found no issues so far during testing, but will closely follow ongoing development and updates. Currently, it seems like a solid choice.
👍
Will merge, but keep on testing an report back in case anything comes up. |
Resolves #62.
Before this PR, there was a short delay (5s) when starting
jmwalletd
to wait for tor port bindings, as the previous service manager (supervisord
) has no concept of dependencies. This is brittle and error-prone.After this PR is applied,
supervisord
has been replaced bydinit
which can build service hierarchies and making it possible forjmwalletd
andob-watcher
to actively wait fortor
to start successfully.Also updates docker image versions:
alpine
from3.15
to3.16.2
debian
frombullseye-20220801-slim
tobullseye-20221004-slim
How to test?
Use the image published from this branch called
dinit
in your regtest environment by changing labelmaster
todinit
in dockerfile-deps/joinmarket/webui-standalone/Dockerfile and rebuild your setup withnpm run regtest:build
.You should see instance 2 and 3 come up normally and access their UI on http://localhost:29080 and http://localhost:30080.
In the console you see smth like: