droot

module
v0.1.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 30, 2015 License: MIT

README

droot

Droot is a super-easy container chrooting a docker image without docker.

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 beyond our current capabilities.

Droot provides a simpler container runtime without annoying Linux Namespaces. Droot depends on traditional Linux functions such as chroot(2), Linux capabilities(7) and a bind mount. droot helps you to chroot a container image built by docker and to import/export container images on Amazon S3.

droot concept

Requirements

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

Installation

Usage

$ droot push --to s3://example.com/dockerfiles/app.tar.gz dockerfiles/app
$ droot pull --dest /var/containers/app --src s3://example.com/dockerfiles/app.tar.gz
$ sudo droot run --bind /var/log/ --root /var/containers/app command
$ sudo droot umount --root /var/containers/app
How to set your AWS credentials

Droot push/pull subcommands support the following methods to set your AWS credentials.

  1. an IAM instance profile. http://docs.aws.amazon.com/codedeploy/latest/userguide/how-to-create-iam-instance-profile.html
  2. Environment variables.
$ export AWS_ACCESS_KEY_ID=********
$ export AWS_SECRET_ACCESS_KEY=********
$ export AWS_REGION=********
  1. ~/.aws/credentials a standard to manage credentials in the AWS SDKs

Roodmap

  • rm command to clean container environment
  • rmi command to clean a image on S3
  • pull command with the rsync option
  • push/pull other compression algorithms
  • image versioning
  • pull from docker registry
  • drivers except Amazon S3
  • run reads .docekrenv, .dockerinit
  • reduce fork&exec
  • --no-dropcaps option

Development

Droot uses a library with 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

Contribution

  1. Fork (https://github.com/yuuki1/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

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL