ya-runtime-vm is an implementation of a Docker-like runtime environment for Linux systems.
This repository consists of 2 crates:
-
ya-runtime-vmAn application for running Virtual Machine images pre-built for yagna.
-
gvmkitA tool for converting Docker images into yagna Virtual Machine images and uploading them to a public repository. Requires for Docker to be installed on your system.
Prerequisites:
-
rustcRecommendation: use the Rust toolchain installer from https://rustup.rs/
-
musl-gccandgperfOn a Ubuntu system, execute in terminal:
sudo apt install musl musl-tools gperf
Git checkout:
Init runtime/init-container/liburing submodule.
git submodule init
git submodule updateBuilding:
cd runtime
cargo buildPrerequisites:
-
cargo-debCargo helper command which automatically creates binary Debian packages. With Rust already installed, execute in terminal:
cargo install cargo-deb
Installation:
In terminal, change the working directory to runtime and install a freshly minted Debian package.
cd runtime
sudo dpkg -i $(cargo deb | tail -n1)This will install the binary at /usr/lib/yagna/plugins/ya-runtime-vm/ya-runtime-vm.
Follow the installation section before executing.
ya-runtime-vm 0.2.5
USAGE:
ya-runtime-vm [OPTIONS] <SUBCOMMAND>
FLAGS:
-h, --help Prints help information
-V, --version Prints version information
OPTIONS:
-w, --workdir <workdir>
-t, --task-package <task-package>
--cpu-cores <cpu-cores> [default: 1]
--mem-gib <mem-gib> [default: 0.25]
--storage-gib <storage-gib> [default: 0.25]
SUBCOMMANDS:
test Perform a self-test
offer-template Print the market offer template (JSON)
deploy Deploy an image
start Start a deployed image
help Prints this message or the help of the given subcommand(s)
-
Docker
VOLUMEcommandDirectories specified in the
VOLUMEcommand are a mountpoint for directories on the host filesystem. Contents of those directories will appear as empty during execution.If you need to place static assets inside the image, try not to use the
VOLUMEcommand for that directory.