Pennebaker / grunt-init-craft

Automate Craft things with Grunt.
8 stars 1 forks source link

Work cross-platform with minimal setup #1

Open alexgleason opened 7 years ago

alexgleason commented 7 years ago
  1. The site should be accessible from multiple devices and platforms to enable collaborators with varying preferences to work on the project, as well as people who own multiple devices. At least support for Windows/Mac/Linux should be expected.
  2. The project should be able to be run on any platform with the least number of steps. Lowering the barrier of entry allows many more people to jump into the project, and especially to jump in quickly.

I don't think switching away from Vagrant makes sense. Vagrant is slow, but it's compartmentalized and it runs cross-platform. I don't want to install mariadb on my computer just to work on one project, I want to run the whole project in something that can be stopped or destroyed. If something goes wrong I don't want to be debugging the host machine, I just want to destroy the VM. The homebrew instructions also leave out Windows and Linux.

Lately I've been using Docker for local development, which is great. It has all the benefits of Vagrant except it's lightning fast. I suggest moving towards this if you want to move away from Vagrant in favor of something more lightweight. But having the user install PHP, Node, Composer, a bunch of PHP extensions, a composer package, and MariaDB is a lot of unnecessary effort that could be dialed back into a simple vagrant up or docker-compose up -d.

spAnser commented 7 years ago

We moved away from vagrant because we were seeing 10-15 second load times for every page. With valet we are seeing pages load in less than a second.

Valet isn't for everyone but I only had to set it up once about 9 months ago now and haven't had to deal with provisioning a vagrant or docker instance, where each eats up resources if/when I forget to shut them down. With Valet all the projects I've setup locally all work all the time. I can have 5 projects running and working without having to have 5 vagrant or docker instances running.

Also Craft3 is going to use composer to install and update both the core and plugins. So very soon in the craft world composer is going to become something that is necessary.

alexgleason commented 7 years ago

10-15 sec load times is not normal even for Vagrant. It takes a long time to get running initially (downloading the box and provisioning) but then it should run smoothly. There might be something else going on there like RAM configuration etc.

Also Docker does not introduce any additional overhead per site because it shares the OS kernel. On Linux, it shares the host's kernel so there is virtually no overhead compared to running it straight off the host filesystem. On Windows and Mac it requires running one VM, but all containers will share that VM's kernel so there isn't an additional load for multiple sites running at once.

Not to mention, deploying with Docker streamlines the whole process since the system configuration you have in dev and production are virtually identical.

alexgleason commented 7 years ago

I've just discovered that Vagrant supports mounting with NFS which will increase performance on shared folders.