Fractal Docker Plugin
This plugin handles the creation and deletion of docker volumes backed by copy-on-write filesystems (BTRFS currently), regular snapshotting of these volumes, and replicating them to our storage backend end-to-end encrypted and signed.
Builds:
- fractal-docker-master-amd64 (signature)
- fractal-docker-master-arm64 (signature)
- fractal-docker-master-arm32 (signature)
Resources:
Compilation
To compile it, you need to have a recent nightly version of Rust (use rustup to install it). As this git repository contains submodules, you'll have to check those out as well before you compile it.
git submodule update --init
cargo build --release
The resulting binary will be in target/release/fractal-docker-plugin
.
Setup
In order for this to work, you need to have a BTRFS filesystem mounted at /var/lib/fractal
. If your root filesystem does not use BTRFS, you may use the setup-btrfs.sh script to set one up:
scripts/setup-btrfs.sh
Running
Run the resulting binary. It needs a path for the default storage target API backend.
target/release/fractal-docker-plugin --api http://localhost:8000
docker volume create --driver fractal abc
docker volume ls
docker volume rm abc
For debugging purposes you can set the RUST_LOG
environment variable to enable logging. One useful setting is RUST_LOG=info,sqlx=warn
to show verbose output, but not every single database interaction.
License
AGPL 3.0, commercial licensing available upon request.