Ubuntu16.04环境下编译Nuclio

一、编译环境要求:

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


你可能感兴趣的:(容器)