A lightweight toolkit for local development with Docker
Genv 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, Genv is a set of bash
scripts that provide an
interface for running project-related tasks. Genv includes a
collection of common services, which are essentially wrappers around
Docker Compose configurations. All
Genv services are designed to work together on a Docker network
(named genv
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
(.genv
by default). Internal name resolution and service discovery
(.service.int.genv
) is supported with Consul and Registrator, as
well as Docker's own internal DNS server.
Genv has been tested with:
- Docker for Mac
- Docker Toolbox on MacOS
- Ubuntu Desktop 16.04
- 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
)
- curl https://raw.githubusercontent.com/koinotice/genv/master/install.sh | bash
- Optional: Load completion scripts by adding
which genv > /dev/null && . "$(genv initpath)"
to your profile (~/.bashrc
,~/.bash_profile
,~/.zshrc
).
- Consul + Traefik tips
- Documentation
- Plugins
- Bundled tasks
- If you experience an issue and are relatively certain that
genv
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 ๐