We are currently working with MacOS X and 16gb of ram with the local installation of Vagrant / Virtual Box. This set up works to slow for us. So, here’s my question what are you are using for development?
We where thinking about replacing Vagrant with Docker. Do you know if this would work faster? Any hints would be great.
I use Vagrant / VirtualBox when I have to (e.g. consulting on sites I didn’t build) but also find it very slow. Haven’t tried Docker. For my own sites I use a local stack installed with homebrew, which includes a command line utility for switching PHP version and enabling or disabling xdebug. I love the performance, but obviously the tradeoff is that I’m not getting 1:1 production environment emulation.
Internally at Silverstripe Ltd, we suggest Vagrant as our boilerplate dev environment. Our go-to vagrant box is silverstripeltd/dev-ssp which is meant to mimic Silverstripe Cloud platform as much as possible.
However, various staff members have different preferences. I for one, use Ubuntu on my main work station and run everything natively.
This sound like a reasonably well powered machine. It might be worthwhile seeing if it’s especially slow on specific requests. Their might be some performance issue to diagnose … some time the upside of having a slow dev environment is that you notice of your code has performance issue
We use vagrant and don’t find the performance too much of an issue - certainly more overhead than just native but useful when a larger team all needs to be on the same page. Using NFS to mount the code directory is pretty key to this - needs the vagrant plugin bindfs
# Configure webroot and mount options
# See https://github.com/gael-ian/vagrant-bindfs
if Vagrant.has_plugin?("vagrant-bindfs") then
# Useful for OSX (for optimal performance)
config.vm.synced_folder WEBROOT_HOST, "/vagrant-nfs", type: "nfs"
config.bindfs.bind_folder "/vagrant-nfs", WEBROOT_GUEST,
force_user: 'vagrant',
force_group: 'vagrant',
perms: 'u=rwX:g=rD:o=rD',
o: 'nonempty'
else
# For Windows and Linux
config.vm.synced_folder WEBROOT_HOST, WEBROOT_GUEST, type: "nfs"
end