All Projects → yuuki → Droot

yuuki / Droot

Licence: other
The super-simple chroot-based application container engine.

Programming Languages

go
31211 projects - #10 most used programming language

Projects that are alternatives of or similar to Droot

Hiboot
hiboot is a high performance web and cli application framework with dependency injection support
Stars: ✭ 150 (-15.25%)
Mutual labels:  cli, container
yoda
Simple tool to dockerize and manage deployment of your project
Stars: ✭ 69 (-61.02%)
Mutual labels:  deploy, container
Ko
Build and deploy Go applications on Kubernetes
Stars: ✭ 3,755 (+2021.47%)
Mutual labels:  deploy, container
Serverlessui
A command-line utility for deploying serverless applications to AWS. Complete with custom domains, deploy previews, TypeScript support, and more.
Stars: ✭ 434 (+145.2%)
Mutual labels:  cli, deploy
The forge
Our groundbreaking, lightning fast PWA CLI tool
Stars: ✭ 70 (-60.45%)
Mutual labels:  cli, deploy
Netlify Builder
Deploy your Angular app to netlify from CLI
Stars: ✭ 60 (-66.1%)
Mutual labels:  cli, deploy
heroku-deploy
A simple action to build, push and deploy your dockerized app to your Heroku Application
Stars: ✭ 40 (-77.4%)
Mutual labels:  deploy, container
Hub Tool
🧪 Docker Hub experimental CLI tool
Stars: ✭ 147 (-16.95%)
Mutual labels:  cli, container
Devspace
DevSpace - The Fastest Developer Tool for Kubernetes ⚡ Automate your deployment workflow with DevSpace and develop software directly inside Kubernetes.
Stars: ✭ 2,559 (+1345.76%)
Mutual labels:  cli, container
Nbash
观看NBA比分直播,球员数据的命令行程序。
Stars: ✭ 176 (-0.56%)
Mutual labels:  cli
Mellplayer
A tiny terminal player based on Python3
Stars: ✭ 176 (-0.56%)
Mutual labels:  cli
Dnote
A simple command line notebook for programmers
Stars: ✭ 2,192 (+1138.42%)
Mutual labels:  cli
Fhirbase
Your persistence layer for FHIR data
Stars: ✭ 175 (-1.13%)
Mutual labels:  cli
Prtgapi
C#/PowerShell interface for PRTG Network Monitor
Stars: ✭ 175 (-1.13%)
Mutual labels:  cli
Inclavare Containers
A novel container runtime, aka confidential container, for cloud-native confidential computing and enclave runtime ecosystem.
Stars: ✭ 173 (-2.26%)
Mutual labels:  container
Helios
Docker container orchestration platform
Stars: ✭ 2,089 (+1080.23%)
Mutual labels:  container
Firessh
free, cross-platform SSH terminal client for Firefox and Chrome
Stars: ✭ 173 (-2.26%)
Mutual labels:  cli
Tably
Python command-line script for converting .csv data to LaTeX tables
Stars: ✭ 173 (-2.26%)
Mutual labels:  cli
Youtubeshop
Youtube autolike and autosubs script
Stars: ✭ 177 (+0%)
Mutual labels:  cli
You Dont Need Gui
Stop relying on GUI; CLI **ROCKS**
Stars: ✭ 4,766 (+2592.66%)
Mutual labels:  cli

droot Latest Version Travis Build Status Go Report Card License

Droot is A simple chroot-based application container engine to build, ship, run with chroot instead of docker run. Droot aims to simply escape dependency hell.

Overview

Docker has a powerful concept about an application deployment process, that is Build, Ship, Run. But there are many cases that docker runtime is too complicated and beyond our current capabilities, especially on production. Then Droot provides a simpler container runtime without complicated stacks including linux namespaces and union filesystems like AUFS. It depends on simple Linux functions such as chroot(2), Linux capabilities(7) and a bind mount, and helps you to chroot a container image built by docker and to import/export container images on Amazon S3.

  • Build: Build archives by docker build and docker export
  • Ship: Upload the archives to a storage (like Amazon S3), and Download archives from it.
  • Run: chroot(2), Linux capabilities(7), and a bind mount.

droot architecture

Requirements

  • Docker (droot export only depends on it)
  • Linux (droot run and droot umount only supports it)

Installation

Homebrew

$ brew tap yuuki/droot
$ brew install droot

Download binary from GitHub Releases

Releases・yuuki/droot - GitHub

Build from source

 $ go get github.com/yuuki/droot/cmd/droot

Usage

$ docker build -t dockerfiles/app
$ droot export dockerfiles/app | gzip -cq | aws s3 cp - s3://drootexamples/app.tar.gz
$ sudo droot umount --root /var/containers/app # it is safe to umount before run if you use `--bind` option
$ mkdir -p /tmp/app /var/containers/app
$ aws s3 cp s3://drootexamples/app.tar.gz - | tar -xpzf - -C /tmp/app
$ mv -T /tmp/app /var/containers/app
$ sudo droot run --cp --user appuser --group appgroup --bind /var/log/app --root /var/containers/app -- command
$ sudo droot umount --root /var/containers/app

Integration with capze

https://github.com/yuuki/capze

$ aws s3 cp s3://drootexamples/app.tar.gz - | tar xzf - -C /tmp/app
$ capze --keep 5 /tmp/app /var/containers/app

How to set docker endpoint

Droot supports the environment variables same as docker-machine such as DOCKER_HOST, DOCKER_TLS_VERIFY, DOCKER_CERT_PATH. ex.

DOCKER_TLS_VERIFY=1
DOCKER_HOST=tcp://192.168.x.x:2376
DOCKER_CERT_PATH=/home/yuuki/.docker/machine/machines/dev

Presentations (Japanese)

Development

Droot uses a package using cgo, so it is necessary to build in Linux for a Linux binary. It is recommanded to use Docker for development if you are on OSX and other OSs.

build in Docker container

$ ./script/build_in_container.sh make build

Contribution

  1. Fork (https://github.com/yuuki/droot/fork)
  2. Create a feature branch
  3. Commit your changes
  4. Rebase your local changes against the master branch
  5. Run test suite with the make test command and confirm that it passes
  6. Create a new Pull Request

Author

y_uuki

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].