-
Notifications
You must be signed in to change notification settings - Fork 20.6k
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
Puppeth: Dockerfile Parse Error deploying sealer to network #16905
Comments
Having compiled the tools locally and disabled the cleanup operation post-deploy, I was able to retrieve the generated Dockerfile. It is indeed invalid due to an unsilenced warning being inserted before the enode address:
|
Ah damn it, thanks for catching this. |
This is a relief. First time using Puppeth, thought I was doing something wrong lol. Couldn't figure anything out until local compiling as well. Any ideas on how to fix this in the meantime? For now, I've hardcoded my bootnodes into the module_node.go file. |
You can comment this line in
This will keep the Dockerfile in place on the remote machine, letting you manually run it after you correct the bootnode address in the file. That way you can still dynamically generate the sealer nodes but you have manual step to actual run them. I'm trying to figure out at which point this warning crops up so I can fix the problem but I'm not as familiar with go as I'd want to be so it's too easy to want to resort to simple string stripping which would be a hack. Hope to have more insight soon. |
It looks like commit #16800 is causing the problem. I don't know Go, so I'm not sure how to resolve this. For now, removing the log warning on line 200 allows the sealers to correctly deploy. |
@Christopher-Hayes this fix didn't do it for me because I'd need to rebuild the geth in destination servers too it seems. Currently easier to remove deletion or strip the string in the Puppeth implementation. |
Days later, I couldn't get through dependency hell and find out where this first occurs. If I debug |
Disabling the logger with This is why the disabling of the logger had no effect, since the warning occurs where geth is running, not where it's launched from. I'll get to the bottom of this and solve it without string stripping if it kills me. |
This change solves issue ethereum#16905 by disabling log output when asking for enode address from a deployed node.
Got it. |
Is there an earlier version of ethereum that we can compile from that will avoid this problem
|
@Swader I commented our that file as suggested and edited the Dockerfile to remove the error message. How do I run the Dockerfile? Sorry I am new to docker |
When using Puppeth to deploy two sealer nodes to two different VMs on my subnet (Vagrant machines) one of which already holds a bootnode (successfully deployed), Puppeth fails to build a sealnode with the message
Dockerfile Parse Error
and the content:This indicates that there's an interpolation error in the Dockerfile somewhere where the enode address of the bootnode is being given to Docker as a command, rather than escaped. I don't know how to find out which Dockerfile to check to fix this and send a PR.
I should note that up until recently (updated Virtualbox and Vagrant, and the base box) this same process worked fine, as described in this tutorial that is soon coming out on SitePoint.com: draft.
System information
Geth version: 1.8.10-stable
Architecture: amd64
Protocol Versions: [63 62]
Network Id: 1
Go Version: go1.10.2
Operating System: darwin
Expected behaviour
Sealnode gets deployed as usual. No errors from Docker.
Actual behaviour
Error from Docker:
Steps to reproduce the behaviour
Follow the steps from this tutorial.
The text was updated successfully, but these errors were encountered: