Go to file
Daniel J Walsh a49a32f55f Add buildah export support
Will export the contents of a container as a tar ball.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>

Closes: #170
Approved by: rhatdan
2017-06-28 20:06:42 +00:00
cmd/buildah Add buildah export support 2017-06-28 20:06:42 +00:00
contrib Add buildah export support 2017-06-28 20:06:42 +00:00
docker Import and namespace more types 2017-05-24 18:20:10 +00:00
docs Add buildah export support 2017-06-28 20:06:42 +00:00
examples Update the example commit target to skip transport 2017-06-26 15:56:18 +00:00
imagebuildah Ensure volume points get created, and with perms 2017-06-24 10:37:13 +00:00
tests Add buildah export support 2017-06-28 20:06:42 +00:00
util Fix inspect/tag-by-truncated-image-ID 2017-06-08 18:31:31 +00:00
vendor Vendor in latest container/storage 2017-06-14 13:16:37 +00:00
.redhat-ci.sh Add a "validate" target 2017-04-12 21:25:35 +00:00
.redhat-ci.yml hook up to redhat-ci 2017-03-24 18:42:00 +00:00
.travis.yml Add a "validate" target 2017-04-12 21:25:35 +00:00
LICENSE Initial commit 2017-01-26 17:59:13 +01:00
Makefile Add 'buildah version' command 2017-06-27 15:50:36 +00:00
README.md Add buildah export support 2017-06-28 20:06:42 +00:00
add.go Use errors.Errorf() instead of fmt.Errorf() 2017-06-02 16:26:46 +00:00
btrfs_tag.sh Suss out build tags, add a missing Travis dep 2017-01-28 06:20:22 +01:00
buildah.go Add a quick note about state version values 2017-06-14 17:47:07 +00:00
commit.go Make shallowCopy() not use a temporary image 2017-06-16 15:34:53 +00:00
common.go gccgo is giving errors about using copy 2017-06-06 19:40:56 +00:00
config.go Don't overwrite parent information when reading 2017-06-13 21:50:42 +00:00
delete.go Change functions that use a fmt.Errorf to wrap an err to error.Wrapf 2017-06-02 14:17:04 +00:00
image.go Add an option to specify a Create date for images 2017-06-13 21:50:42 +00:00
import.go Don't overwrite parent information when reading 2017-06-13 21:50:42 +00:00
libdm_tag.sh Refine the libdm_no_deferred_remove tag check 2017-02-02 15:24:02 -05:00
mount.go buildah mount command should list mounts when no arguments are given. 2017-06-01 18:37:40 +00:00
new.go Change functions that use a fmt.Errorf to wrap an err to error.Wrapf 2017-06-02 14:17:04 +00:00
pull.go gccgo is giving errors about using copy 2017-06-06 19:40:56 +00:00
run.go Handle "run" without an explicit command correctly 2017-06-26 13:21:53 +00:00
unmount.go buildah mount command should list mounts when no arguments are given. 2017-06-01 18:37:40 +00:00
user.go Change functions that use a fmt.Errorf to wrap an err to error.Wrapf 2017-06-02 14:17:04 +00:00
user_basic.go Use errors.New() instead of Wrapf() for new errors 2017-06-02 16:26:46 +00:00
user_unix_cgo.go Use errors.Errorf() instead of fmt.Errorf() 2017-06-02 16:26:46 +00:00
util.go Maintain multiple working container configs 2017-05-18 18:28:44 +00:00
vendor.conf Vendor in latest container/storage 2017-06-09 13:57:06 +00:00

README.md

buildah - a tool which facilitates building OCI container images

Go Report Card Travis

Note: this package is in alpha, but is close to being feature-complete.

The buildah package provides a command line tool which can be used to

  • create a working container, either from scratch or using an image as a starting point
  • create an image, either from a working container or via the instructions in a Dockerfile
  • images can be built in either the OCI image format or the traditional upstream docker image format
  • mount a working container's root filesystem for manipulation
  • unmount a working container's root filesystem
  • use the updated contents of a container's root filesystem as a filesystem layer to create a new image
  • delete a working container or an image

Installation notes

Prior to installing buildah, install the following packages on your linux distro:

  • make
  • golang (Requires version 1.8.1 or higher.)
  • bats
  • btrfs-progs-devel
  • device-mapper-devel
  • gpgme-devel
  • libassuan-devel
  • git
  • bzip2
  • go-md2man
  • runc
  • skopeo-containers

In Fedora, you can use this command:

 dnf -y install \
    make \
    golang \
    bats \
    btrfs-progs-devel \
    device-mapper-devel \
    gpgme-devel \
    libassuan-devel \
    git \
    bzip2 \
    go-md2man \
    runc \
    skopeo-containers

Then to install buildah follow the steps in this example:

  mkdir ~/buildah
  cd ~/buildah
  export GOPATH=`pwd` 
  git clone https://github.com/projectatomic/buildah ./src/github.com/projectatomic/buildah 
  cd ./src/github.com/projectatomic/buildah 
  make 
  make install
  buildah --help

buildah uses runc to run commands when buildah run is used, or when buildah build-using-dockerfile encounters a RUN instruction, so you'll also need to build and install a compatible version of runc for buildah to call for those cases.

Commands

Command Description
buildah-add(1) Add the contents of a file, URL, or a directory to the container.
buildah-bud(1) Build an image using instructions from Dockerfiles.
buildah-commit(1) Create an image from a working container.
buildah-config(1) Update image configuration settings.
buildah-containers(1) List the working containers and their base images.
buildah-copy(1) Copies the contents of a file, URL, or directory into a container's working directory.
buildah-export(1) Export the contents of a container's filesystem as a tar archive
buildah-from(1) Creates a new working container, either from scratch or using a specified image as a starting point.
buildah-images(1) List images in local storage.
buildah-inspect(1) Inspects the configuration of a container or image.
buildah-mount(1) Mount the working container's root filesystem.
buildah-push(1) Copies an image from local storage.
buildah-rm(1) Removes one or more working containers.
buildah-rmi(1) Removes one or more images.
buildah-run(1) Run a command inside of the container.
buildah-tag(1) Add an additional name to a local image.
buildah-umount(1) Unmount a working container's root file system.
buildah-version(1) Display the Buildah Version Information

Future goals include:

  • more CI tests
  • additional CLI commands (?)