Skip to content

Golem runtime vm is implementation of docker-like runtime enviroment

License

Notifications You must be signed in to change notification settings

pwalski/ya-runtime-vm

 
 

Repository files navigation

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

    On a Ubuntu system, execute in terminal:

       sudo apt install musl musl-tools

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 command

    Directories 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.

About

Golem runtime vm is implementation of docker-like runtime enviroment

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Rust 57.3%
  • C 37.9%
  • Makefile 2.6%
  • Shell 1.3%
  • Dockerfile 0.9%