D4M is slow. Primarily because of its osxfs/grpcfuse sharing filesystem. On the other hands Parallels has their own proprietary driver, and it works at almost native speeds.
- Install and set up vagrant VM:
brew install direnv brew tap hashicorp/tap brew install vagrant vagrant plugin install vagrant-parallels vagrant plugin install vagrant-env cp .env.dist .envrc
- Set your preferred shared folder in the
.env
file, for exampleSHARE_PATH="/Users/markomitranic/Sites/"
Now reload the direnv withdirenv allow
. - Thats it, start vagrant with
vagrant up
. - Add the following to VScode Settings:
"docker.explorerRefreshInterval": 10000, "docker.host": "ssh://vagrant@workbox",
- You can even set up a docker context. Works similarly to what you'd use
docker-machine
for:docker context create workbox --docker "host=ssh://vagrant@workbox" docker context use workbox
There are various ways to code in this setup. I have outlined my decisions in a thorough article.
You can just go oldschool and keep coding on your local machine. Use your editor of choice. All the files will be sync-ed over to the containers at nearly native speeds.
You will need however, to have the language you use installed on your machine, if you hope to have intellisense.
A better (albeit weird at first) way would be to share the code from your machine to the Parallels VM. Start containers. Refer to Remote Interpreter section for directions on how to use the editors.
Feeling adventurous? Don't use sharing at all. Provision the VM with your SSH key, and download your projects. Start containers. Refer to Remote Interpreter section for directions on how to use the editors.
I have written an extensive article on the topic, in short:
- VSCode has a built in "Attach to remote Container" capability. It spawns a real editor and you work directly with the native interpreter within the container.
- JetBrains "thick-ide" products like PHPStorm have a similar capability to be located on your host, but use a remote interpreter from within the container.