Skip to content

Rust implementation of the singularity sync scripts

Notifications You must be signed in to change notification settings

brown-bnc/singularity_sync

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Singularity Sync (Rust Edition)

The Singularity Sync utility rebuilds Docker containers as Singularity containers. It does so by parsing a manifest file containing a list of Docker images. Below is an example of a manifest file.

---
docker:
- bids/validator
- brownbnc/xnat-tools
- poldracklab/fmriprep
- poldracklab/mriqc

As of this writing (2020/08/26) there is only support for images from the official Docker Hub. The repositories are represented in ${org}/${respository} form.

Install

To install Singularity Sync install rust.

Build using cargo:

cargo build --release

Run the resulting executable:

./target/release/singularity_sync

Development

Development follows a standard rust workflow. Most everything is done through cargo.

Build development version with cargo:

cargo build

Run development version:

cargo run -- -h

Format with cargo:

cargo fmt

Lint with cargo:

cargo clippy

Future work

  • Parallelize builds using Slurm
  • Support single Docker images without a manifest
  • Support Docker registries other than Docker Hub
  • Support native Singularity builds
  • Add real tests

About

Rust implementation of the singularity sync scripts

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •  

Languages