A consistent development environment for all your Macs using Docker Machine/Vagrant+CoreOS and Docker.
The usual development machine has all kinds of software installed on the main operating system, which can be a pain to setup and keep consistent across all your machines. This Workspace gets you up and running by leveraging Docker machine combined with Boot2Docker or Vagrant combined with CoreOS. The workspace itself is a Docker image which is configured in code, thus repeatable and therefore consistent.
CoreOS | Boot2Docker | |
---|---|---|
xhyve | corectl | not yet supported |
Virtualbox | Vagrant* | Docker Machine |
VMware Fusion | Vagrant** | Docker Machine |
* Also install the Vagrant triggers plugin:
vagrant plugin install vagrant-triggers
** If you want Vagrant combined with VMware Fusion you also need the VMware plugin and a Vagrant VMware Fusion license:
vagrant plugin install vagrant-vmware-fusion
vagrant plugin license vagrant-vmware-fusion /path/to/your/license-vagrant-vmware-fusion.lic
Using git:
git clone https://github.com/maikelvl/workspace.git
or download the zip: https://github.com/maikelvl/workspace/archive/master.zip
Add the new bin directory to your PATH by adding the following to your ~/.bash_profile
file:
export PATH="$HOME/workspace/bin:$PATH"
The hosts are defined in ./hosts/
. You can create as many hosts as you want.
Match each host to your preferences by editing its config.json
.
Now, to SSH into the workspace open a new terminal window and run the following:
workspace ssh
The following will happen:
- Create a Docker machine named 'default'
- Building the workspace from the
./workspace-image/Dockerfile
- Running the build workspace image which main process is a SSH daemon.
- SSH into the workspace
Now you will see your fresh workspace which is configured.
To run the workspace on the CoreOS host run the following:
workspace -H coreos-01 ssh
You can also set the environment variable WORKSPACE_DEFAULT_HOST: export WORKSPACE_DEFAULT_HOST=coreos-01
If you’ve got your own software you wish to have in your workspace, just modify the ./workspace-image/Dockerfile
and run the following in your Mac terminal:
workspace ssh -R