现在是2015年8月4日 在昨天这个时候我决定在自己电脑上搭建一个Nodejs Sharp环境,用于开发一个网站图片实时处理的程序。
但是真的把这件事想简单了,以下是我的心路历程,希望能给阅读这篇博客的朋友一点帮助。
#Vagrant运行Ubuntu# Nodejs Sharp(http://sharp.dimens.io/)模块需要安装libpivs 包( 官网描述是这样的“A fast image processing library with low memory needs. ”)
这样一来就只能运行在Linux系统了, 于是想到了使用Vagrant 启动一个Ubuntu , apt-get 还是很好用的,想想也都觉得简单,呵呵
接下来苦逼事情发生了, 当我把Nodejs npm sharp都安装好了之后, 重启Ubuntu,它就再也没有启动了, 查看日志发现是之前的安装竟然破坏了系统启动,我都是按章执行的啊!
然后更苦逼的事,之前好好的VirtualBox 现在启动任何镜像都不能用了, 上网查询后,说是VirtualBox 版本问题, 对Win7 支持不友好 (再吐槽一句 没落的微软)
于是开始试验各种版本 ,有人说4.3.12 是稳定版, 试了不行,有人说更低版本, 于是我直接选择了4.1.6 这么低应该可以了吧。 启动又好了, 可是只要安装libpivs就失败。
要是这样就真没辙了, 因为libpivs 依赖的包特别多,我不想再细化了解其内部结构了, 这时在Sharp官网发现有Docker的镜像,太好了, 这种纯镜像的环境出现问题的几率还是很小的。
#转战Docker# 早听说过DaoCloud 专门做Docker级别虚拟化的公有云,官网上面有很多Docker资源和文档, 我自己的工作机是Windows7 ,理所当然选择了专门为Windows开发的 Boot2Docker 的安装包。
#启动Docker# 安装好了Docker, 美美地输入Boot2Docker init 可以用了, start貌似也生效了,可是注意观察发现后面有一个提示 Trying to get Docker socket one more time Error requesting socket。就是说无法连接这个VM
我用VirtualBox 直接启动发现效果一样,里面显示无法读取iso ,并且VM的配置里面存储选项竟然是空的, OMG! 上网查询资料真的很少, 看见编程大牛都是提问Mac系统运行Docker如何如何, 我是多么系统也在Mac上遇到这样的错误啊
#又回到Vagrant# 于是冷静想一想,Docker主要运行在GNU的系统下, Boot2Docker 不是主流解决方案,只是临时用用,而Docker本身是去年才火的, 算新事物, Windows7对它来说算旧系统,估计也是支持的不好,我还是不要折腾Boot2Docker这东西了。
于是果断选择 Vagrant 启动一个 Ubuntu with docker的镜像, 然后在里面使用Docker, 苦尽甘来竟然一次成功了。
现在我的环境是 :
Vagrant 1.6.3
VirtualBox 4.1.6
Docker 1.5.0
这是多么痛的领悟啊, 反复安装各种软件,最好竟然把它们组合起来就好了, 建议使用Windows的朋友还是选择VM 运行Docker吧