Simple tool for running Docker
based development environments with Chef
and Berkshelf
based provisioning.
Reads config from the Tuggerfile
in your project's root folder and uses use a tugger-stack
from another git
repository which contains the provisioning config for your development container.
You can find a Debian based LAMP tugger-stack
here: https://github.com/joschi127/tugger-stack-lamp
To create your own provisioning config, just fork the repository of the tugger-stack
and use the Git URL of your
own repository in your Tuggerfile
.
- Inspired by
Vagrant
and thevagrant up
command - just runtugger start
from your project folder and you're ready to go Chef
andBerkshelf
based provisioning, originally based on theVagrant-LAMP-Stack
by MiniCodeMonkey- And of course also thanks a lot to all the guys from
Docker
,Chef
,Berkshelf
and all the other great tools we're using for this - Thanks to Mike and Chris from the
Coder Radio
podcast where I heard aboutDocker
for the very first time
- Should be as easy to use as
Vagrant
(having less features but being more lightweight) - Should work out of the box on Linux and Mac (only
Docker
and standard tools lilebash
orgit
are required) - Faster and using less memory and disk space than
Vagrant
or other virtual machines, thanks to the power ofDocker
containers (at least on Linux hosts) - Automatic provisioning and reprovisioning
- Allows using a shared
Docker
image if you create several containers from the sametugger-stack
to save disk space and to allow creating new containers faster - Automatically shares your project source files with the container
- Automatically shares your
~/.git
and~/.ssh
settings folders with the container so you can use git and your existing SSH keys from within the container - Avoids nasty permission issues (e.g. by automatically running Apache and PHP with your own user's user id in
the
tugger-stack-lamp
) - Automatically updates your
/etc/hosts
file so you can access your containers by using a fixed host name - Automatically allocates mapped ports (required on Mac for direct access e.g. to the webserver running in the container)
- Allows to override settings predefined in the
tugger-stack
's chef.json file by setting extra chef.json data in your Tuggerfile
Docker
has to be installed and your own user account has to be allowed to use it. (For most systems, add yourself
to the docker
group and re-login.)
On Macs you have to use boot2docker
in addition.
Install tugger if not already installed:
git clone https://github.com/joschi127/tugger /some/target/path/tugger
Make it available as a global command: (optional)
sudo ln -s /some/target/path/tugger/bin/tugger /usr/local/bin/tugger
Add a Tuggerfile
to your project:
cp /some/target/path/tugger/Tuggerfile.example /path/to/your/project/Tuggerfile
# edit the file with your favorite text editor
# feel free to add the file to your project's version control system
Start docker container by using tugger
:
tugger start
For more information have a look at the command reference:
tugger --help