The Docker Task Runner
Dunner is a task runner tool based on Docker, simple and flexible. You can define tasks and configure the environment in your .dunner.yaml
file and then run as dunner do <taskname>
.
Example .dunner.yaml
:
envs:
- AWS_ACCESS_KEY_ID=`$AWS_KEY`
- AWS_SECRET_ACCESS_KEY=`$AWS_SECRET`
- AWS_DEFAULT_REGION=us-east1
tasks:
deploy:
steps:
- image: 'emeraldsquad/sonar-scanner'
commands:
- ['sonar', 'scan']
- image: 'golang'
commands:
- ['go', 'install']
- image: 'mesosphere/aws-cli'
commands:
- ['aws', 'elasticbeanstalk update-application --application-name myapp']
- follow: 'status' #This refers to another task and can pass args too
args: 'prod'
status:
steps:
- image: 'mesosphere/aws-cli'
commands:
# This uses args passed to the task, `$1` means first arg
- ['aws', 'elasticbeanstalk describe-events --environment-name $1']
Running dunner do deploy
from command-line executes deploy
task inside a Docker container. It creates a Docker container using specified image, executes given commands and shows results, all with just simple configuration!
- Easy Configuration to run tasks inside container
- Multiple commands
- Mount external directories
- Environment Variables
- Pass arguments through CLI
- Add dependent task
- Asynchronous mode
- Dry Run
and more...
Read more about Why Dunner and refer our guides for installation and usage.
User Documentation | Installation Guide | Dunner Examples | Contributing | Dunner GoCD Plugin |
---|---|---|---|---|
Learn more about using Dunner | Getting started with Dunner | Dunner Cookbook Recipes | How can you contribute to Dunner? | Have a look at Dunner GoCD Plugin |
Have a look at Dunner Milestones for our future plans.
We'd love your help to fix bugs and add features. The maintainers actively manage the issues list, and try to highlight issues suitable for newcomers. The project follows the typical GitHub pull request model. Before starting any work, please either comment on an existing issue, or file a new one. Refer our Developer Guide for more.