天天看点

go-ethereum编译出现:Get https://registry-1. docker. io/v2/: EOF错误解决

问题分析

在使用以太坊客户端创建网络组件的时候,出现以下错误:

Step 1/2: FROM puppeth/ethstats: latest bervice ’ ethstats’ failed to build: Get https://registry-1. docker. io/v2/: EOF ERROR[03-19|13:57:17.082] Failed to deploy ethstats container err=“Process exited with status 1”

go-ethereum编译出现:Get https://registry-1. docker. io/v2/: EOF错误解决

此时已经给docker换过源了,因此报错不是连接超时问题,而是无法获得更多资源,第一种可能和docker版本或者go的版本有关,我测试了三个go的版本,发现go版本1.11.2是可行的。而第二种可能是最常见的,那就是docker代理的问题,因此可以切换一个稳定的docker代理即可。

问题解决

第一步,更换go版本

首先进入/usr/local目录

cd /usr/local
           

安装go1.11.2版本

wget https://dl.google.com/go/go1.11.2.linux-amd64.tar.gz
           

解压

tar zxvf go1.11.2.linux-amd64.tar.gz
           

设置编译目录GOPATH

mkdir -p /home/gopath
           

配置环境变量

vim /etc/profile
           

在配置文件最后添加

export GOROOT=/usr/local/go
export PATH=$PATH:$GOROOT/bin
export GOPATH=/home/gopath
           

保存已配置的环境变量使其生效

source /etc/profile
           

最后只需查看go的版本即可验证是否成功了

go version
           
go-ethereum编译出现:Get https://registry-1. docker. io/v2/: EOF错误解决

第二步清除go-ethereum以编译的可执行文件后重新编译,或者重新编译一个未编译的go-ethereum,可执行文件在build的bin目录下。

cd go-ethereum
make all
           

最后一步就可以执行puppeth去测试,此时上述的错误也就解决了,但是注意的是你的docker能访问外部网络,如果不能可以换源。

docker换源

go-ethereum编译出现:Get https://registry-1. docker. io/v2/: EOF错误解决

第二种解决办法就是用个VPN,使本身机器能访问外网,可以解决了这个问题,所以,要给docker选择一个稳定可行的代理,或者直接使用阿里云主机,无需VPN即可使用。

继续阅读