我在从他们的网站了解流浪工作流程时遇到了一些麻烦。
我以前一直在做一个项目,并且经历了更改目录和设置流浪者盒等的整个过程。我甚至运行了bundle install,它安装了我正在进行的分叉项目的所有宝石。我将Web服务器配置为可以工作,甚至可以通过Web服务器连接在我的浏览器上查看项目。
后来我不得不去吃晚饭,所以我做了
import java.util.*;
class dice{
public static void main (String[] args){
Random rnd = new Random();
int[] track = new int[19];
for (int roll=0; roll<10000; roll++){
int sum=0;
for(int i = 0; i < 3; i++) {
//roll the 6-face dice
int n = rnd.nextInt(6) + 1;
sum+=n;
}
++track[sum];
}
System.out.println("Sum\tFrequency");
for(int finalSum=3; finalSum<track.length;finalSum++){
System.out.println(finalSum+"\t"+track[finalSum]);
}
System.out.println("the largest frequency is %d", //how to find it?)
}
}
当我回来时,我在同一个目录中运行
vagrant destroy
然后我做了
vagrant up
接着是
vagrant ssh
当我到达这里时,我跑
cd /vagrant
我收到以下错误:
rails s
不应该让流浪者记得以前做过的所有工作吗?或者我是否必须从头开始重新开始并每次重建我的所有宝石?我错过了什么吗?
答案 0 :(得分:5)
vagrant destroy
字面意思是命令所说的 - 破坏启动VM,完全使用光盘映像。除了bundle install
目录中发生的更改之外,每次更改(即软件的安装,运行/vagrant
的结果等)都会丢失。
如果您想在不破坏光盘映像的情况下停止虚拟机 - 您应该使用vagrant halt
代替(或者像使用真实服务器一样关闭虚拟机 - 即发出poweroff
)。
部署文档中概述的以流浪者为动力的VM的一般工作流程是您将Vagrantfile
与包含配置部分(config.vm.provision
)的源一起分发,其中包含您所描述的内容 - 安装未捆绑在盒子图像中的附加软件(即Rails,gems),设置数据库等。它可以通过多种方式实现,从仅运行简单的shell脚本(使用顺序命令执行)开始,向上使用高级配置管理系统,如Chef,Puppet,CFEngine,Ansible等。
临时休息(如去吃饭)通常不需要停止虚拟机,也不需要破坏虚拟机。即使是使用单用户Rails应用程序在VirtualBox / VMware / KVM下运行的成熟虚拟机也几乎不会消耗大量资源。