每当我尝试使用vagrant up
(在Mac OSX上)启动我的流浪盒而没有--provision
标志时,我会收到此错误:
==> default: Machine already provisioned. Run `vagrant provision` or use the `--provision`
==> default: flag to force provisioning. Provisioners marked to run always will still run.
我可以ssh
进入流浪盒,但我无法访问网络服务器。
该框启动,我可以在运行vagrant up --provision
时访问服务器,但会删除每个会话中的所有数据。
输入vagrant halt
并尝试使用vagrant up
再次启动此框后,会出现此问题。在vagrant up
之后输入vagrant destroy
时不会发生这种情况,但destroy
也会删除所有数据库等,所以我想要另一个选项。有没有人有建议?
我正在使用具有自己的Vagrantfile
的现有仓库。该项目使用Ruby on Rails和Sqlite3。
答案 0 :(得分:1)
问题是你的配置启动了rails命令,但是在它没有持久化之后所以当你重启VM时这个命令没有运行而且rails没有启动,你可以在cron作业中添加命令以确保它启动自动。
但为了简单起见,您可以在每次启动VM时添加以下配置程序来启动rails
config.vm.provision :shell, privileged: false, run: "always", inline: %(
cd /vagrant/
bundle exec unicorn_rails -D
sudo service nginx restart
)