部署 物理隔离的环境如何部署 ROR 项目?

lissdy · 发布于 2016年1月05日 · 最后由 lissdy 回复于 2016年1月07日 · 1618 次阅读
7749

如题,服务器环境完全物理隔离,请问各位有什么好的部署方法?

我目前的做法是编译安装ruby,将需要的gems在本地安装好之后scp至服务器,在服务器执行gem install *.gem进行离线安装。

但是,gem包有依赖关系,离线安装似乎是按照包名顺序安装的,所以gem install *.gem并不能一次成功安装所有的gem。。。

共收到 26 条回复
3

也许可以试试看用虚拟机,做虚拟机镜像的方式部署。

24215

docker呢?

983
bundle package
bundle install --local
15420

#3楼 @chucai 离线部署gem

983

#4楼 @pathbox 是啊 本地打包,服务器上安装

7733

物理隔离? gem可以不用装系统目录的

3962

gemstash?

244

完全物理隔离是不可能的,比如你不是还可以scp嘛,楼主应该说清楚是怎样的隔离方式,比如服务器是否可以自己访问外网,或者受限访问外网(受到类似国家防火墙的阻挡)等等

7749

#3楼 @chucai 正解!感谢!!!

7749

#8楼 @fsword scp也必须在内网才可以,服务器完全不能访问外网的呢

4938

上docker吧

7733

上docker吧

7733

#11楼 @dy1901 docker 是不是也得自己搞镜像吧?

15139

Also bundle install --path vendor/bundle

775

bundle install --without development:test --deployment

96

我都是去网上一个一个下载gem,再一个一个local安装的. 公司网络物理隔离,想学习只能麻烦些了.

23529

bundle install --deployment不就行了

4938

#13楼 @yukihiro_matz 是,用docker gem以外的依赖会简单一点,比如如果你需要es或者redis服务来支撑的话

4938

#13楼 @yukihiro_matz 你这头像和用户名太高大上了~

27
  1. docker
  2. 本机开代理,服务器通过代理访问外网安装 gems
96

1.在服务器上安装ruby,安装bundle的gem。 2.确保本地安装后rails 的目录下面存在vendor/cache目录,然后整个工程上传到服务器。 3.最后在工程目录下执行:

bundle install --local --gemfile Gemfile --path #{your_install_path}/shared/bundle --deployment --quiet --without development test

完成后可以看一下,存在一个.bundle的隐藏目录,里面的config文件指向正确。

7749

#21楼 @jimrokliu 问题已经解决啦,跟您的方法一样~

7749

#20楼 @numbcoder 项目比较急,来不及用docker,不过确实要研究起来咯_^

8047

先在有网络的地方执行bundle,然后把ruby整个文件夹复制过去覆盖掉原来的,只在windows下测试过

2

不能上网的服务器问题大啊,未来一堆坑

7749

#25楼 @huacnlee 是啊,碰到坑还要切外网出来找资料,环境也是够恶劣。。。

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