A tool for easy multi-service development powered by Docker Compose
Navy is a command line tool and NodeJS library to help make working on your application easier when it has many services or backing services.
It builds on top of Docker Compose which means it's super easy to get started if you're already familiar with the Docker ecosystem. Simply point Navy at your existing
docker-compose.yml and then you're good to go. With a single command, you can launch all of your services from your configuration and go on to manage those services and debug them.
Navy is great for development as it allows you to put a service into "development mode" from the command line, which automatically mounts your local source code into the container. This is great for quickly working on multiple services without having to change any configuration.
Navy is also great for testing and CI as you can bring up your environment before your test run and even get information like host and ports of various services using the NodeJS API.
Work on services in your environment
Easily mount your source code into a service container so you can work on it locally, whilst keeping it in the Docker network. Done from one single command!
Easily run multiple instances of your environment in parallel.
This is useful if you want to have a development environment where you do all of your usual, manual testing, but also want to be able to spin up another environment with all of your services for an automated integration test run.
Swap out versions of services
Great for when you want to quickly revert to an old version of a service.
Built in HTTP proxy
Access your services using
myservice.dev.nip.iorather than using pesky IP addresses and random ports. This is also great for testing your services on other devices like tablets and phones.
Easily launch and manage environments from your code. Useful for if you want to spin up an environment at the start of a test run or extract the host and port of a running service.
Add your own commands or manipulate the Docker Compose configuration however you like at runtime using config reducers. An example of how we use this internally is rewriting the images to point to a local registry cache instead of pulling from Docker Hub.
$ npm install -g navy
Licensed under the MIT License.