在百度云(BAE)上部署Ghost Blog -- 半自动化版

JerryXia 发表于 , 阅读 (0)
从BAE上把新创建的项目的git目录clone下来。然后把Ghost里面的一坨东西拷贝到当前目录好了,git add,commit,push一气呵成!

哎,怎么push不上去,这是因为push的内容过多,BAE的git设置了bufferSize,运行这个命令

git config --global http.postBuffer 157286400

ok, push成功,在BAE上刷新一下,快捷发布!

祈祷一下,然后发现部署失败。

巨坑汇总

到目前位置我们离胜利还差剩下这些坑没填。
  • npm install: 这个是很显而易见的,ghost项目所依赖的第三方包我们没有安装,所以迅速的在本地敲下npm install,但是稍等。
  • 不知道大家的本地环境如何,我用的是mac,这些依赖包里的sqlite是做文件存储的,这个包需要g++编译,mac端编译固然可以,但是我们的BAE是跑在linux上的,直接上传肯定不行。于是我就去搜索了BAE的node module的策略,官方说你在package.json中写好依赖,BAE会自动帮你安装,但是,实测无效。所以我自己找了台linux机器,在上面安装了node module然后上传到BAE上。
  • 到这里BAE上的ghost应该就可以跑了。我之前也很开心的开始写博客,一切安好。 后来我改了点东西,重新发布了下。喜闻乐见的,博客没了。啥都没了。

    这是什么问题呢,原来ghost默认是使用sqlite3作为文件存储,此文件就在代码的content目录中,但是BAE重新发布是会重新从git上拉此文件,所以被覆盖了。

这里有两个解决方法

最后两个小Tip

  • package.json中的dependencies请删掉,不然BAE会尝试去安装,无一例外,发布失败。

  • ghost会有start up check,在BAE上会莫名失败,我看了下并没有什么卵用,就阉掉了。

ok,发布成功,看到Ghost美丽的脸庞。