-
Notifications
You must be signed in to change notification settings - Fork 19
/
Vagrantfile
62 lines (50 loc) · 2.07 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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
# -*- mode: ruby -*-
# vi: set ft=ruby :
# Application definitions
app_name = "kettle"
app_directory = "/home/vagrant/#{app_name}"
# Resource allocation
cpus = ENV["VM_CPUS"] || 2
ram = ENV["VM_RAM"] || 2048
# Node.js
nodejs_branch = "8"
nodejs_version = "8.11.4"
Vagrant.configure(2) do |config|
config.vm.box = "inclusivedesign/fedora31"
config.vm.hostname = app_name
# Port-forwarding
config.vm.network "forwarded_port", guest: 9081, host: 9081, protocol: "tcp", auto_correct: true
# Shared folders
config.vm.synced_folder ".", "#{app_directory}"
# Mounts node_modules in /var/tmp to work around issues in the VirtualBox shared folders
#
# Set SKIP_NODE_MODULES_BIND_MOUNT to "1" to skip this and have the directory shared
# between host and VM
if ENV["SKIP_NODE_MODULES_BIND_MOUNT"] != "1"
config.vm.provision "shell", run: "always", inline: <<-SHELL
mkdir -p /var/tmp/#{app_name}/node_modules #{app_directory}/node_modules
chown vagrant:vagrant -R /var/tmp/#{app_name}/node_modules #{app_directory}/node_modules
mount -o bind /var/tmp/#{app_name}/node_modules #{app_directory}/node_modules
SHELL
end
# VirtualBox customizations
config.vm.provider :virtualbox do |vm|
vm.customize ["modifyvm", :id, "--memory", ram]
vm.customize ["modifyvm", :id, "--cpus", cpus]
vm.customize ["modifyvm", :id, "--vram", "256"]
vm.customize ["modifyvm", :id, "--accelerate3d", "off"]
vm.customize ["modifyvm", :id, "--audio", "null", "--audiocontroller", "ac97"]
vm.customize ["modifyvm", :id, "--ioapic", "on"]
vm.customize ["setextradata", "global", "GUI/SuppressMessages", "all"]
end
# Install system requirements
config.vm.provision "shell", inline: <<-SHELL
dnf install -y --disablerepo='*' https://rpm.nodesource.com/pub_#{nodejs_branch}.x/fc/28/x86_64/nodesource-release-fc28-1.noarch.rpm
dnf install -y gcc-c++ nodejs-#{nodejs_version}
echo "cd #{app_directory}" >> /home/vagrant/.bashrc
SHELL
# Build application
config.vm.provision "shell", privileged: false, inline: <<-SHELL
npm install
SHELL
end