我总认为 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 比较合适
另外出于安全考虑,用预先准备好的,也防止一些不必要的问题。