Percheron

Gem Version Build Status Code Climate GPA Test Coverage Dependency Status

Organise your Docker containers with muscle and intelligence.

Features

  • Single, easy to write .percheron.yml controls everything
  • Supports building, creating and starting of containers and their dependancies
  • Supports building using a Dockerfile or pulling a Docker image from Docker Hub
  • Build 'base' images as a dependancy and then build from there
  • Support for pre-build and post-start scripts when generating images and starting containers
  • Version control of building images and containers
  • Written in Ruby :)

Supported platforms

  • Linux
  • MacOS 10.9+

Installation

Add this line to your application's Gemfile:

gem 'percheron'

And then execute:

$ bundle install

Or install it yourself as:

$ gem install percheron

Requirements

Usage

TODO

Demo

asciicast

Debugging

To debug Percheron, set the DEBUG=true environment variable.

To debug Percheron and Docker, set the DOCKER_DEBUG=true environment variable.

Examples

  • Rails - Rails 4.2, PostgreSQL, redis, HAProxy and postfix
  • Redis - Redis cluster + sentinel, master, two slaves and tools
  • Torrent - Tracker (chihaya), seeder (aria2) and three peers (aria2)
  • SaltStack - SaltStack v2015.2.0rc2 with master and minion

Testing

All (cane, RuboCop, unit and integration):

bundle exec rake test

Style (cane and RuboCop):

bundle exec rake test:style

Contributing

  1. Fork it ( https://github.com/ashmckenzie/percheron/fork )
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Run bundle exec rake test
  5. Push to the branch (git push origin my-new-feature)
  6. Create a new Pull Request