ruby-on-rails - Vagrant 工作流程 - vagrant ssh、vagrant destroy、vagrant up 命令

标签 ruby-on-rails ruby linux ruby-on-rails-4 vagrant

我在理解他们网站上的 vagrant 工作流程时遇到了一些困难。

我之前一直在开发一个项目,并且经历了更改目录和设置 vagrant box 等的整个过程。我什至运行了捆绑安装来安装我正在开发的 fork 项目的所有 gem 。我将 Web 服务器配置为工作,甚至可以通过 Web 服务器连接在浏览器上查看该项目。

后来我要去吃晚饭,所以我就去了

vagrant destroy

当我返回时,在我运行的同一目录中

vagrant up

然后我就这么做了

vagrant ssh

后跟

cd /vagrant

当我到达这里时我就跑

rails s

我收到以下错误:

The program 'rails' is currently not installed.  You can install it by typing:
sudo apt-get install rails

运行 vagrant up 不应该记住我之前所做的所有工作吗?或者我每次都必须从头开始并重建所有 gem ?我错过了什么吗?

最佳答案

vagrant destroy 按照命令的字面意思执行操作 - 完全销毁已启动的虚拟机以及光盘镜像。除了 /vagrant 目录中发生的更改之外,所有更改(即软件安装、运行 bundle install 的结果等)都会丢失。

如果您只想停止虚拟机而不破坏光盘镜像 - 您应该使用vagranthalt(或者像对待真实服务器一样关闭虚拟机电源 - 即通过发出关机)。

文档中概述的部署 vagrant 支持的虚拟机的一般工作流程是,将 Vagrantfile 与包含配置部分 (config.vm.provision) 的源一起分发它执行您所描述的操作 - 安装未捆绑在盒子镜像中的附加软件(即 Rails、gems)、设置数据库等。它可以通过多种方式实现,从运行一个简单的 shell 脚本开始(并按顺序执行命令),直至使用高调的配置管理系统,如 Chef , Puppet , CFEngine , Ansible

临时休息(比如去吃晚饭)通常不需要停止虚拟机,更不用说破坏它。即使是在 VirtualBox/VMware/KVM 下运行的成熟虚拟机以及单用户 Rails 应用程序也几乎不需要担心消耗大量资源。

关于ruby-on-rails - Vagrant 工作流程 - vagrant ssh、vagrant destroy、vagrant up 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29983482/

相关文章:

ruby-on-rails - Rails3/Mongoid - 基本数据库 :seed with embedded documents

ruby-on-rails - 获取表的更新时间 Ruby on Rails

c++ - Linux 上 RCF 的 boost 异常

linux - 在 perl 中开始客户端服务器编程的最佳方法?

ruby-on-rails - Rails Time.now.end_of_month 不考虑闰年

php - Nginx 虚拟主机不工作

ruby-on-rails - 铁路应用程序有带有评论的博客

ruby-on-rails - rails : session variable is nil outside

ruby-on-rails - Rails ActiveRecord 序列化数据 Rspec 测试

java - elasticsearch 启动失败报错