Skip to main content

`ds` is a development utility for managing snapshots inside a docker container.

Project description

ds - docker snapshot

ds is a development utility for managing snapshots inside a docker container.

Personally I use it to quickly save the state of my development database, try out something that mutates the state - a data migration or user interaction - and return to the initial state. Often repeatedly, because trial and error is essential. You can probably use it on any sort of stored data, probably.

Note: This repository is still a work in progress.

Installing

# Note: excutable will be called `ds`
pip install docker-snapshot

Shell completion:

# For Bash, add this to ~/.bashrc:
eval "$(_DS_COMPLETE=source_bash ds)"

# For Zsh, add this to ~/.zshrc:
eval "$(_DS_COMPLETE=source_zsh ds)"

Usage

Create a snapshot

ds create name-goes-here
# or auto-generate a name
ds create 

Restore a snapshot

ds restore name-goes-here
# or restore the latest snapshot
ds restore

List snapshots

ds ls

Delete snapshots

ds delete name-goes-here

Example project setup

In this example we use ds to create and restore database snapshots in our development environment. The projects docker-compose.yml file could look something like this:

version: "3.8"
services:
  db:
    container_name: db
    restart: always
    image: postgres:13
    env_file: .env
    ports:
      - 5432:5432
    volumes:
      - db-volume:/var/lib/postgresql/data
  ...
  1. Browse to your project root
cd code/your-awesome-project
  1. Create ds.yaml template file
ds init
  1. Edit your ds.yaml
# The target container
container_name: "db"

# The directory inside said container that you want to snapshot
directory: "/var/lib/postgresql/data"

# Identifier to separate projects, this allows you:
# - To have multiple projects with the same container name
# - To have multiple setups (ie. docker-compose / kind) for the same project
namespace: "your-awesome-project"

Project details


Download files

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

Source Distribution

docker-snapshot-1.0.4.tar.gz (7.0 kB view hashes)

Uploaded Source

Built Distribution

docker_snapshot-1.0.4-py3-none-any.whl (7.8 kB view hashes)

Uploaded Python 3

Supported by

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