Awesome
ya-runtime-vm
ya-runtime-vm
is an implementation of a Docker-like runtime environment for Linux systems.
This repository consists of 2 crates:
-
ya-runtime-vm
An application for running Virtual Machine images pre-built for yagna.
-
gvmkit
A 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.
Building
Prerequisites:
-
rustc
Recommendation: use the Rust toolchain installer from https://rustup.rs/
-
musl-gcc
andgperf
On 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 update
Building:
cd runtime
cargo build
Installing
Prerequisites:
-
cargo-deb
Cargo 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
.
Command line
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)
Caveats
-
Docker
VOLUME
commandDirectories specified in the
VOLUME
command 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
VOLUME
command for that directory.