buildah - a tool which facilitates building OCI container images ================================================================ [![Go Report Card](https://goreportcard.com/badge/github.com/projectatomic/buildah)](https://goreportcard.com/report/github.com/projectatomic/buildah) [![Travis](https://travis-ci.org/projectatomic/buildah.svg?branch=master)](https://travis-ci.org/projectatomic/buildah) 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 * 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 \ 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](https://github.com/opencontainers/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-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. | **Future goals include:** * more CI tests * additional CLI commands (?)