`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: executable 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
...
- Browse to your project root
cd code/your-awesome-project
- Create
ds.yamltemplate file
ds init
- 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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file docker_snapshot-1.0.11.tar.gz.
File metadata
- Download URL: docker_snapshot-1.0.11.tar.gz
- Upload date:
- Size: 6.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.0 CPython/3.12.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1452fa2dca6b1fd611a50c19dc2d14d33e1adc956cbee34fa56e883dd8b4a7bd
|
|
| MD5 |
e6d97fd2d1af12e7f24060182b8c465d
|
|
| BLAKE2b-256 |
b524f6fc0bf63db286c1b627a08973aae791fd35ae2928609154e5f63ba7ada1
|
File details
Details for the file docker_snapshot-1.0.11-py3-none-any.whl.
File metadata
- Download URL: docker_snapshot-1.0.11-py3-none-any.whl
- Upload date:
- Size: 8.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.0 CPython/3.12.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1246a0bd22577bef4a15d11efdadde2117bc1683ba0ac471bae156e47f8de75a
|
|
| MD5 |
d2fce6b829a24582397350d546f89efe
|
|
| BLAKE2b-256 |
79a21009167adc8dddf2203e2dccb002dfa38e55aec188ad56ea021bca2ed153
|