Rails 把 `vender/cache` 目录放入 git 仓库然后部署是最佳实践吗?

ruohanc · 2013年10月10日 · 最后由 gene_wu 回复于 2013年10月13日 · 2457 次阅读

我总认为 git 是放代码的地方,不应该 cache GEM 这些东西,但是不这么做我又不知道如何能够在无外网的环境下部署 rails 应用。求指点..

你这不是给自己找麻烦吗,留着这些多方便,bundle install --local,内外网通吃,岂不快哉!

#1 楼 @scott 嗯..你意思是就把这些 gem 放在 git 仓库里面咯.?

确实方便,不过我想知道大家是不是都这么搞的...

如果连的 git 服务器网速快的话挺好的

连 Gem 服务器快的话,没必要,我就从来不用 gem cache

#4 楼 @huacnlee 内网限制多呀~

#3 楼 @luikore 内网...速度倒是嗖嗖的..

一个地方放一个东西,你应该考虑的是如何内网安装 gem,而不是把你的代码库弄乱。

#6 楼 @ruohanc 好处是 ctags 自动完成和方法搜索不用专门配目录了... 不好的地方是项目搜索要配置忽略目录,否则结果会很很杂

git-grep 和 ack 都要比较复杂的配置。textmate2 的话,项目下加个 .tm_properties

exclude = {.git,.DS_Store,vendor,tmp,log,tmtags}

#5 楼 @ruohanc 难道要服务器不能上网?

#9 楼 @huacnlee 不一定能上外网。环境复杂的很。所以要尽量少的依赖外网

自从有了 bundler,就再也不用他了

#11 楼 @ZombieCoder - - errr...不是通过 bundle package 命令生成的嘛..?

#12 楼 @ruohanc 我指 bundler 出现前,部署用的是 rake rails:freeze:gems 的时候,只是不是放在 cache 里,这个有点遥远 有 bundle 后,说真的,我就没有用过 bundle package.... : )

#13 楼 @ZombieCoder 嗯..不过内网的网络确实是个问题...有些机房就是不给外网的...

服务器当然不能随便连接外网,这个要求无可厚非,你需要的是一个打包过程,在打包时生成 vendor 下的内容

我觉得有必要用,如果你的 app server 好多台,还是用自己的 vendor 比较合适

另外出于安全考虑,用预先准备好的,也防止一些不必要的问题。

需要 登录 后方可回复, 如果你还没有账号请 注册新账号