Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Suggestion] Add the subcommands distrobox snapshot & distrobox restore #1339

Open
dcermak opened this issue Apr 11, 2024 · 1 comment
Open
Labels
enhancement New feature or request

Comments

@dcermak
Copy link

dcermak commented Apr 11, 2024

Is your feature request related to a problem? Please describe.

Distrobox is a nice piece of software to not mess up my host os when playing around in a container, but it currently provides no convenient way to save me from messing up the container itself. It would be great if distrobox would allow me to create a snapshot of a container and restore it, if whatever I did ended badly. At the moment I'd have to perform the snapshoting myself and handle the removal of old snapshots myself as well.

Describe the solution you'd like

distrobox snapshot would be a new command that with the following syntax/options:

  • distrobox snapshot create $ctr --snapshot-name $name: would create a new snapshot, the name of the snapshot would be optional

  • distrobox snapshot cleanup $ctr --keep $N: would delete everything but the latest $N (optional parameter, defaults to something between 5 to 10) snapshots of all containers or the provided container

  • distrobox snapshot list $ctr: list all snapshots of a container

  • distrobox rollback $ctr --snapshot $name: restore the container $ctr to the last snapshot or the one with the provided name

Describe alternatives you've considered

using podman container commit -p $ctr $name manually and re-starting distrobox as described in the docs.

Additional context

A possible implementation could just store the containers in the container runtime's storage. Snapshots could be created using the id of the container, e.g. via:
podman container commit -p $ctr distrobox-snapshot-$(podman inspect -f {{.Id}} $ctr):$(date +%s)

which would create unique time snapshots (unless the user decides to create snapshots more frequently than once per second…).

@dcermak dcermak added the enhancement New feature or request label Apr 11, 2024
@msirringhaus
Copy link

Here is a proof of concept stand-alone script that does most of the things: https://github.com/msirringhaus/distro-snapper

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants