vagrant + virtualbox搭建一个可移动的开发环境

编辑于 2021-05-11 03:36:31 阅读 1080

##前言 在日常开发中可能会遇到这样的问题

  • 新入职第一天不是在熟悉公司项目,而是在安装开发环境(搭建开发环境耗时)
  • 在本地开发完一个功能,测试没问题,而部署到服务器上就跑不起来了(环境不一致)
  • 在调试某个功能时发现自己这边跑不通,而同事那边没问题(环境不一致)

vagrant+virtualbox 的出现,成功的解决了搭建开发环境耗时且不一致的问题

  • vagrant box镜像同时支持Windows、Mac和Linux
  • 一次安装,快速分发 可以给新入职的同事分分钟部署一个和大家一样的开发环境
  • 使用简单
vagrant up ⬅️启动虚拟机
vagrant ssh ⬅️登陆虚拟机
vagrant reload ⬅️重载虚拟机,Vagrantfile文件有修改了才需要
vagrant halt ⬅️关闭虚拟机

##安装

#下载box
http://www.vagrantbox.es
https://github.com/holms/vagrant-centos7-box/releases/download/7.1.1503.001/CentOS-7.1.1503-x86_64-netboot.box
#进入项目目录(虚拟机启动后系统自动挂载该目录到/vagrant)
cd PhpstormProjects
#添加本地box
vagrant box add {title} ../vagrant_package/CentOS-7.1.1503-x86_64-netboot.box
#初始化(在项目目录生成Vagrantfile文件1️⃣
vagrant init {title}
#启动
vagrant up
#连接
vagrant ssh
#登陆虚拟机后就可以安装自己需要的软件了,和普通服务器操作一致
#搭建一个和服务器一致的开发环境

##备份

#进入项目目录
cd PhpstormProjects
#打包(会在当前目录生成一个package.box,根据个人需要把它移动到合适目录)
vagrant package

##恢复备份

#box列表,查看已有的box
vagrant box list
#移除名称为php的box(box移除后,还需要手动删除virtualBox中的虚拟机)
vagrant box remove php
#恢复备份过的box
vagrant box add php ../vagrant_package/package-php.box
#启动
vagrant up

##附件 1️⃣Vagrantfile文件实例

#vim: set ft=ruby ts=2 :

Vagrant.configure("2") do |config|
   config.vm.box = "php"
   #config.vm.network "forwarded_port", guest: 80, host: 8090
   config.vm.network "public_network",  ip:"192.168.1.88"

   config.vm.synced_folder "./", "/vagrant"
   config.vm.provider "virtualbox" do |v|
      v.memory = 2048
      v.cpus = 2
   end

   config.vm.provision "shell", run:"always", inline: <<-SHELL
   service nginx start
   SHELL
end

广而告之,我的新作品《语音助手》上架Google Play了,欢迎下载体验