关闭计算机时 Vagrant 无法正常关闭

关闭计算机时 Vagrant 无法正常关闭

我正在使用 vagrant 1.7.4,它在 ubuntu 15.10 上与 lxc 1.1.5 一起使用。

过去几周我一直在使用它,在关闭计算机之前从未执行过 vagrant halt。今天我发现我的 vagrant box 已损坏,并且被重新创建。在此过程中,它当然删除了我的整个数据库。我有两个问题:

  1. 当我关闭 vagrant 或 lxc 时,如果收到来自 ubuntu 的 SIGTERM 信号,它们不会正常关闭,这是对的吗?因此 vagrant 的盒子可能会损坏?我之所以有这个想法,是因为一位同事告诉我这种情况可能发生,并且因为

  2. 是否可以更改 vagrant up 的默认行为,这样当它找不到合适的框时,就不会只是创建一个新容器并覆盖旧容器。它会通知用户并等待用户输入。所以我可以在创建新框之前停止 vagrant up 并进行 sql 转储吗?这个问题可能是对 vagrant 的变更请求,但我想有一个简单的解决方法,我不知道?

答案1

我不确定是否要停止“vagrant up”并进行 sql 转储,但在此基础上进行上游工作可能会解决您的问题。首先使用 vagrant 并遵循最佳实践来避免损坏,然后您应该会很成功(就未来的实践而言)。在关闭机器之前,请务必运行“vagrant halt”或“vagrant suspend”。如果您想要一个安全措施来确保您的 vagrant 框在关闭之前被暂停(以防您忘记停止或暂停),请遵循以下指南:https://www.ollegustafsson.com/en/vagrant-suspend-resume/

据我所知,一旦一个盒子损坏,你就必须销毁它并重建它。我以前不得不处理损坏的盒子,这很麻烦,因为你会丢失数据库。你也可以在配置的 vagrant up 上执行 sql 导入,这样你就可以从外部数据库中提取 sql。这解释了如何做到这一点:https://discourse.roots.io/t/import-database-from-mysql-dump-on-vagrant-up/5514/3

祝你好运!

相关内容