Skip to content

anapsix/dvol

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Version control for your development databases in Docker

dvol lets you commit, reset and branch the containerized databases running on your laptop so you can easily save a particular state and come back to it later.

Installation

Step 1

Install Docker 1.8.0 or later.

Step 2

$ curl -sSL https://get.dvol.io |sh

This will pull the dvol docker image, run the dvol docker volume plugin, and set up a tiny wrapper script in /usr/local/bin/dvol.

Data model

  • Volume: a named repository for data files (e.g. database data files) which can be mounted into a docker container.
  • Branch: a linear set of commits (one branch of the tree) and a live running point which the database can write to.
  • Commit: a point-in-time snapshot of the running point of the current branch, named with a UUID.

Usage

dvol copies git as closely as possible, but only implements a subset of its commands.

Here are some examples:

  • dvol list: see which volumes there are, which branch each volume is on, and which containers are currently using each volume.
  • dvol commit -m "commit description": create a new commit based on the running point of the database container by safely stopping and starting the container around the commit.
  • dvol checkout -b newbranch: create a new branch named newbranch from the latest commit (HEAD) on the current branch.
  • dvol reset --hard HEAD^: roll back the current branch to the second last commit.

You can see all available commands by running dvol --help.

If you want other commands to be implemented, please open an issue or even better a pull request!

Docker integration

Use a dvol volume in Docker by specifying docker run -v demo:/path --volume-driver=dvol. This will create a dvol volume called demo.

If a dvol volume doesn't exist when it is referenced, it is created on-demand.

Compose integration

You can also use dvol with Docker Compose, which makes for an awesome way to spin up reproducible microservices environments on your laptop. With dvol you can set volume_driver: dvol in order to automatically spin up all the dvol volumes for your app described with Docker compose with a single docker-compose up -d.

See this example for a very simple demo.

Demo

dvol clusterhq

Examples

Check out the examples directory.

Just run docker-compose up -d on any one of the docker-compose.yml files there.

Ideas? Feedback? Issues? Bugs?

We really appreciate your ideas, feature request, pulls, and issues/bug reports for dvol, because we believe in building useful and user friendly tools for our communities.

Please raise a ticket or feel free to send us a email at feedback@clusterhq.com.

About

Version control for your development databases in Docker.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 99.1%
  • Shell 0.9%