|
|
|
@ -30,7 +30,7 @@ import ( |
|
|
|
|
|
|
|
|
|
// nodeDockerfile is the Dockerfile required to run an Ethereum node.
|
|
|
|
|
var nodeDockerfile = ` |
|
|
|
|
FROM ethereum/client-go:alpine-develop |
|
|
|
|
FROM ethereum/client-go:latest |
|
|
|
|
|
|
|
|
|
ADD genesis.json /genesis.json |
|
|
|
|
{{if .Unlock}} |
|
|
|
@ -38,9 +38,9 @@ ADD genesis.json /genesis.json |
|
|
|
|
ADD signer.pass /signer.pass |
|
|
|
|
{{end}} |
|
|
|
|
RUN \
|
|
|
|
|
echo '/geth init /genesis.json' > geth.sh && \{{if .Unlock}} |
|
|
|
|
echo 'geth init /genesis.json' > geth.sh && \{{if .Unlock}} |
|
|
|
|
echo 'mkdir -p /root/.ethereum/keystore/ && cp /signer.json /root/.ethereum/keystore/' >> geth.sh && \{{end}} |
|
|
|
|
echo $'/geth --networkid {{.NetworkID}} --cache 512 --port {{.Port}} --maxpeers {{.Peers}} {{.LightFlag}} --ethstats \'{{.Ethstats}}\' {{if .BootV4}}--bootnodesv4 {{.BootV4}}{{end}} {{if .BootV5}}--bootnodesv5 {{.BootV5}}{{end}} {{if .Etherbase}}--etherbase {{.Etherbase}} --mine{{end}}{{if .Unlock}}--unlock 0 --password /signer.pass --mine{{end}} --targetgaslimit {{.GasTarget}} --gasprice {{.GasPrice}}' >> geth.sh |
|
|
|
|
echo $'geth --networkid {{.NetworkID}} --cache 512 --port {{.Port}} --maxpeers {{.Peers}} {{.LightFlag}} --ethstats \'{{.Ethstats}}\' {{if .BootV4}}--bootnodesv4 {{.BootV4}}{{end}} {{if .BootV5}}--bootnodesv5 {{.BootV5}}{{end}} {{if .Etherbase}}--etherbase {{.Etherbase}} --mine{{end}}{{if .Unlock}}--unlock 0 --password /signer.pass --mine{{end}} --targetgaslimit {{.GasTarget}} --gasprice {{.GasPrice}}' >> geth.sh |
|
|
|
|
|
|
|
|
|
ENTRYPOINT ["/bin/sh", "geth.sh"] |
|
|
|
|
` |
|
|
|
@ -197,7 +197,7 @@ func checkNode(client *sshClient, network string, boot bool) (*nodeInfos, error) |
|
|
|
|
|
|
|
|
|
// Container available, retrieve its node ID and its genesis json
|
|
|
|
|
var out []byte |
|
|
|
|
if out, err = client.Run(fmt.Sprintf("docker exec %s_%s_1 /geth --exec admin.nodeInfo.id attach", network, kind)); err != nil { |
|
|
|
|
if out, err = client.Run(fmt.Sprintf("docker exec %s_%s_1 geth --exec admin.nodeInfo.id attach", network, kind)); err != nil { |
|
|
|
|
return nil, ErrServiceUnreachable |
|
|
|
|
} |
|
|
|
|
id := bytes.Trim(bytes.TrimSpace(out), "\"") |
|
|
|
|