Let the little green guy do the tedious docker work for you!
I am no longer maintaining yoda. It will continue to work, and all public repos will continue to exist but I've since focused my efforts on Alfred. While alfred is not a drop in replacement for yoda, it is a much much more robust solution and can offer all(and much more) of the same benifits yoda currently has.
Having said that, yoda still works and will continue to work for a really long time. If for no other reason, it takes advantage of command line so any new features docker introduces, you'll get automagically with yoda.
With all of the amazing tools the docker community has created, one of which is incredibly lacking, which is where yoda aims to help fix. That area? The dev enviornment. There are orchestration tools that are amazing for prod, but what if you just want a tool that will volume mount and setup your dev enviornment lickety split? That's where yoda comes in.
- Ability to pull, build and run containers and all of their dependencies.
- A repository of .yoda files that yoda can grab(and contribute to too!) to get you up and running even quicker!
- Wraps the CLI interface and relies more heavily on shell, thus making it more customizable.
- Functionality for different environments built in(no need for additional config files based on env)
- A few more!!!
Instead of downloading and installing a php application, yoda is now in a container(and seems to be working?! Need help testing!) Create an alias and you should be up and running:
alias yoda='docker run --rm -ti -v $HOME/.docker:/root/.docker -v $HOME/.yoda:/yoda/.config -e containerized=true -h=$HOSTNAME -v /var/run/docker.sock:/var/run/docker.sock -v $(if [ $(dirname $PWD) == "/" ]; then echo $PWD; else dirname $PWD; fi):$(if [ $(dirname $PWD) == "/" ]; then echo $PWD; else dirname $PWD; fi) -v $HOME/.ssh:/root/.ssh -v $HOME/.yoda/shares:/yoda/www/share -w $PWD -u=$(id -u $USER) kcmerrill/yoda'
- Clone the yoda project from github
- Run composer to install the php dependencies
- Add yoda to your $PATH
git clone [email protected]:kcmerrill/yoda.git
cd yoda/ && docker run --rm -v $(pwd):/app composer/composer install
sudo ln -s $PWD/yoda /usr/bin/yoda
Yoda should now be ready to go. Give it a try
yoda
I suppose it's a little long for a "brief" overview, but a brief overview of what Yoda is. How you might be able to leverage it in certain ways and going over a few of it's key features.
Use yoda lift
to build and run a yoda project and all its dependencies.
Compare the command output to that project's .yoda
config file.
If you're looking for a clean start, use yoda kill
to stop all running docker containers.
Once Yoda has lifted a project's docker container you can use yoda control
to shell into that container.
The functionality of yoda control
can be extended by adding a control:
section to the .yoda
file.