oci2docker

command module
v0.0.0-...-912b0c8 Latest Latest
Warning

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

Go to latest
Published: Apr 26, 2016 License: MIT Imports: 4 Imported by: 0

README

#oci2docker - Convert OCI bundle to docker image

oci2docker is a small library and CLI binary that converts OCI bundle to docker image. It takes OCI bundle as input, and gets docker image as output.

How it works

An important work of oci2docker is converting OCI Specs to Dockerfile, below is a list of conversion principle:

config.json

Root Configuration
OCI Specs Dockerfile
path ADD
Process configuration
OCI Specs Dockerfile
env ENV
cwd WORKDIR
args ENTRYPOINT
user USER
Mount Points
OCI Specs Dockerfile
mounts VOLUME

runtime.json

Mount Configuration
OCI Specs Dockerfile
mounts VOLUME
Hooks
OCI Specs Dockerfile
Poststart CMD

Build

Installation is as simple as:

go get github.com/huawei-openlab/oci2docker

or as involved as:

# create a 'github.com/huawei-openlab' in your GOPATH/src
cd $GOPATH/src/github.com/
mkdir huawei-openlab
cd huawei-openlab
git clone https://github.com/huawei-openlab/oci2docker.git
cd oci2docker
make
sudo make install

Usage

$ ./oci2docker
NAME:
   oci2docker - A tool for coverting oci bundle to docker image

USAGE:
   oci2docker [global options] command [command options] [arguments...]

VERSION:
   0.1.0

COMMANDS:
   convert      convert operation
   help, h      Shows a list of commands or help for one command

GLOBAL OPTIONS:
   --help, -h           show help
   --version, -v        print the version

$ ./oci2docker convert
NAME:
   convert - convert operation

USAGE:
   command convert [command options] [arguments...]

OPTIONS:
   --oci-bundle "oci-bundle"    path of oci-bundle to convert
   --image-name "image-name"    docker image name
   --port                       exposed port of docker images

Example

$ ./oci2docker convert --oci-bundle example/oci-bundle/ --image-name cts/hello-docker
DEBU[0000] Docker build context is in /tmp/oci2docker911067878
 
Sending build context to Docker daemon 1.031 MB
Sending build context to Docker daemon 
Step 0 : FROM scratch
 ---> 
Step 1 : MAINTAINER ChengTiesheng <chengtiesheng@huawei.com>
 ---> Using cache
 ---> c6fd471de5d0
Step 2 : ADD ./rootfs .
 ---> 319ffc8c52a7
Removing intermediate container 4bdbe7abd980
Step 3 : ENV PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin TERM xterm
 ---> Running in 5fde4642d6d3
 ---> 11ec7f4bdb2f
Removing intermediate container 5fde4642d6d3
Step 4 : ENTRYPOINT /bin/sh
 ---> Running in d47b25f16d80
 ---> 2f6dedb309af
Removing intermediate container d47b25f16d80
Successfully built 2f6dedb309af

$ docker run -i -t cts/hello-docker
/ # 

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
Godeps
_workspace/src/github.com/Sirupsen/logrus
Package logrus is a structured logger for Go, completely API compatible with the standard library logger.
Package logrus is a structured logger for Go, completely API compatible with the standard library logger.
_workspace/src/github.com/codegangsta/cli
Package cli provides a minimal framework for creating and organizing command line Go applications.
Package cli provides a minimal framework for creating and organizing command line Go applications.

Jump to

Keyboard shortcuts

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