A lightweight toolkit for local development with Docker
Harpoon makes it easy to run a local/offline development environment composed of Docker containers. It's an ideal choice for those that don't wish to run a full container management or orchestration platform on their workstation.
At its core, Harpoon is a set of bash
scripts that provide an
interface for running project-related tasks. Harpoon includes a
collection of common services, which are essentially wrappers around
Docker Compose configurations. All
Harpoon services are designed to work together on a Docker network
(named harpoon
by default), with web-based services registering
automatically with a proxy server (Traefik). The use of dnsmasq
enables accessing services "externally" via one or more domains
(.harpoon
by default). Internal name resolution and service discovery
(.service.int.harpoon
) is supported with Consul and Registrator, as
well as Docker's own internal DNS server.
Harpoon has been tested with:
- Docker for Mac
- Docker Toolbox on MacOS
- Ubuntu Desktop 16.04
Requirements
- Bash 4 (
bash
) or ZSH (zsh
)- macOS users should upgrade bash with Homebrew:
brew install bash
- macOS users should upgrade bash with Homebrew:
- Docker (
docker
) - Docker Compose (
docker-compose
)
Quick Start
- curl https://raw.githubusercontent.com/wheniwork/harpoon/master/install.sh | bash
- Optional: Load completion scripts by adding
which harpoon > /dev/null && . "$(harpoon initpath)"
to your profile (~/.bashrc
,~/.bash_profile
,~/.zshrc
).
Documentation
TODO
- Consul + Traefik tips
- Documentation
- Plugins
- Bundled tasks
Contributing
- If you experience an issue and are relatively certain that
harpoon
is the culprit, please report it.- Issues requesting support specifically for any of the core or supporting services will not be processed.
- PRs are welcome 🙂