Skip to main content

Opinionated wrapper around docker

Project description

An opinionated wrapper around the docker-py API that lets you use YAML to define images and run tasks.

https://travis-ci.org/realestate-com-au/harpoon.png?branch=master

See http://harpoon.readthedocs.io for the full documentation.

Installation

Just use pip:

$ pip install docker-harpoon

Configuration

Before Harpoon can be used, it must be configured. Configuration is obtained from the following locations in the following order of precedence:

  • Provided –harpoon-config value

  • HARPOON_CONFIG environment variable

  • ./harpoon.yml

Further, you can also define user-wide settings in your home directory at ~/.harpoonrc.yml. For example if you want the “dark” theme for the logging:

---

term_colors: dark

The contents of the harpoon config has only one mandatory option, images. This must be a dictionary of image_alias to image_options:

---

images:
  cacafire:
    commands:
      - FROM ubuntu:14.04
      - RUN apt-get update && apt-get -y install caca-utils
      - CMD cacafire

A rough overview of all the options available can be found at http://harpoon.readthedocs.org/en/latest/docs/configuration.html

Usage

Once harpoon is installed, there will be a new program called harpoon.

When you call harpoon without any arguments it will print out the tasks you have available.

Unless you don’t have a config file, in which case it’ll complain you have no configuration file.

Once you have a valid configuration file and have chosen a task you wish to invoke, you may use the --task cli option to invoke that task:

$ harpoon --task <task>

Most tasks will also require you to specify an image to work with:

$ harpoon --task <task> --image <image_alias>

Simpler Usage

To save typing --task and --image too much, the first positional argument is treated as task (unless it is prefixed with a dash) and the second positional argument (if also not prefixed with a dash) is taken as the image.

So:

$ harpoon --task run --image my_amazing_image

Is equivalent to:

$ harpoon run my_amazing_image

Tests

Install testing deps and run the helpful script:

$ pip install -e .
$ pip install -e ".[tests]"
$ ./test.sh
$ ./docker_tests.sh

Or use tox:

$ pip install tox
$ tox

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

docker-harpoon-0.7.0.tar.gz (49.1 kB view details)

Uploaded Source

File details

Details for the file docker-harpoon-0.7.0.tar.gz.

File metadata

File hashes

Hashes for docker-harpoon-0.7.0.tar.gz
Algorithm Hash digest
SHA256 827a59965d7b273da36d9ca1109e5d494ec7bfaba9541973ea8c0d9ae5ef7cc1
MD5 eaf6e866f2e01edfb2431b4b257ae547
BLAKE2b-256 b95d889bb0c69c8c8f04ed5e2f2c39463d2addf1a4b2f79ddba66faeee63f658

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page