一、编译环境要求:
1、Linux or OSX
2、git
3、Docker (版本 17.05+, 因为Nuclio使用了Docker的多步编译特性,17.05及以上的版本才支持)
4、Go语言工具链 (在1.9版本上测试, 最好使用1.9版本)
5、设置好GOPATH目录以及GOPATH环境变量
6、Kubernetes 1.7+ (大多数时候为了测试) - 推荐使用Minikube (可以跟着Minikube官网的指导教程安装)
7、需要科学上网,当前可以将就着用一下(https://www.baa.com/modules/node.php)
二、编译操作步骤:
1、从Nuclio官方Github库中Fork Nuclio项目到自己的帐号;
2、从Github克隆项目到本地:
git clone https://github.com/dy604/nuclio.git $GOPATH/src/github.com/nuclio/nuclio
3、进入nuclio文件夹并查看git信息:
cd $GOPATH/src/github.com/nuclio/nuclio && git checkout development
4、使用go get命令获取安装Nuclio所需要的相关依赖包:
go get github.com/v3io/v3io-go-http/... && go get github.com/nuclio/logger/... && go get github.com/nuclio/nuclio-sdk-go/... && go get github.com/nuclio/amqp/...
5、执行编译构建命令:
make build
三、可能出现的异常:
3.1、执行以上步骤4的时候出现的异常:
异常3.1.1××××××××××××××××访问超时
package golang.org/x/net/context: unrecognized import path "golang.org/x/net/context" (https fetch: Get https://golang.org/x/net/context?go-get=1: dial tcp: lookup golang.org on 192.168.65.1:53: read udp 172.17.0.2:46904->192.168.65.1:53: i/o timeout)
错误原因:国内Wall的原因
解决办法:科学上网,参考最开始提供的方案。
异常3.1.2××××××××××××××××科学上网之后报下错,能够访问Google,facebook,就是不能下载
package golang.org/x/net/context: unrecognized import path "golang.org/x/net/context" (https fetch: Get https://golang.org/x/net/context?go-get=1: dial tcp 216.239.37.1:443: connectex: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond.)
错误原因:还是Wall的问题,需要手动安装net包。
解决办法:手动安装net包
操作命令:
$mkdir -p $GOPATH/src/golang.org/x/
$cd $GOPATH/src/golang.org/x/
$git clone https://github.com/golang/net.git net
$go install net
3.2、执行以上步骤5的时候出现的异常:
异常3.2.1 ××××××××××××××××
Error parsing reference: "golang:1.7.3 as builder" is not a valid repository/tag: invalid reference format
错误原因:Docker版本低于17.05+,不支持多步编译;
解决办法:升级Docker-CE版本
操作方法:
1、添加源:
sudo add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
2、更新源:
sudo apt-get update
3、搜索可以使用的稳定版本:
apt-cache madison docker-ce
4、升级安装Docker-CE,将[VERSION]部分替换成具体的版本号:
sudo apt-get -y install docker-ce=[VERSION] --allow-unauthenticated
5、设置Docker的国内加速镜像,使用DaoCloud,xxxxxx部分登录DaoCloud获取:
curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://xxxxxx.m.daocloud.io
6、重启Docker服务
sudo systemctl restart docker.service
7、查看Docker版本
sudo docker version