-
Notifications
You must be signed in to change notification settings - Fork 0
/
Vagrantfile
42 lines (34 loc) · 1.65 KB
/
Vagrantfile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# -*- mode: ruby -*-
# vi: set ft=ruby :
## Making sure we have our needed vagrant plugins installed (and if not install them)
required_plugins = %w(vagrant-vbguest vagrant-share)
plugins_to_install = required_plugins.select { |plugin| not Vagrant.has_plugin? plugin }
if not plugins_to_install.empty?
puts "Installing plugins: #{plugins_to_install.join(' ')}"
if system "vagrant plugin install #{plugins_to_install.join(' ')}"
exec "vagrant #{ARGV.join(' ')}"
else
abort "Installation of one or more plugins has failed. Aborting."
end
end
Vagrant.configure(2) do |config|
# use a centos7 base image for guest VM
config.vm.box = "centos/7"
# name of box: <last folder name>-dart-<random number>
config.vm.define :dart_local do |t|
end
# forwarding ports for dokcer, postgres, elasticmq, nginx/flask (5000)
config.vm.network "forwarded_port", guest: 2376, host: 2376, protocol: "tcp" # docker
config.vm.network "forwarded_port", guest: 5432, host: 5432, protocol: "tcp" # postgres
config.vm.network "forwarded_port", guest: 9324, host: 9324, protocol: "tcp" # elasticmq
config.vm.network "forwarded_port", guest: 5000, host: 5000, protocol: "tcp" # dart-web
# Files in the same folder as the Vagrantfile will be synched in guest machine via /vagrant_data
config.vm.synced_folder ".", "/vagrant_data"
# set memory of VM to 2GB
config.vm.provider "virtualbox" do |vb|
vb.gui = true
vb.memory = "2048"
end
# :privileged => false means we run as the vagrant user (not running using sudo which creating root permissions on files)
config.vm.provision "shell", path: "./vagrant_scripts/vm_setup.sh", :privileged => false
end