Signed-off-by: TomSweeneyRedHat <tsweeney@redhat.com> Closes: #345 Approved by: rhatdan |
||
---|---|---|
cmd/buildah | ||
contrib | ||
docker | ||
docs | ||
examples | ||
imagebuildah | ||
logos | ||
tests | ||
util | ||
vendor | ||
.gitignore | ||
.papr.sh | ||
.papr.yml | ||
.travis.yml | ||
CHANGELOG.md | ||
CONTRIBUTING.md | ||
LICENSE | ||
Makefile | ||
README.md | ||
add.go | ||
btrfs_tag.sh | ||
buildah.go | ||
commit.go | ||
common.go | ||
config.go | ||
delete.go | ||
image.go | ||
import.go | ||
libdm_tag.sh | ||
mount.go | ||
new.go | ||
ostree_tag.sh | ||
pull.go | ||
run.go | ||
secrets.go | ||
selinux_tag.sh | ||
unmount.go | ||
user.go | ||
user_basic.go | ||
user_linux.go | ||
util.go | ||
vendor.conf |
README.md
Buildah - a tool which facilitates building OCI container images
================================================================
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
- bzip2
- device-mapper-devel
- git
- go-md2man
- gpgme-devel
- glib2-devel
- libassuan-devel
- ostree-devel
- runc (Requires version 1.0 RC4 or higher.)
- skopeo-containers
In Fedora, you can use this command:
dnf -y install \
make \
golang \
bats \
btrfs-progs-devel \
device-mapper-devel \
glib2-devel \
gpgme-devel \
libassuan-devel \
ostree-devel \
git \
bzip2 \
go-md2man \
runc \
skopeo-containers
Then to install Buildah on Fedora 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
In RHEL 7, ensure that you are subscribed to rhel-7-server-rpms
,
rhel-7-server-extras-rpms
, and rhel-7-server-optional-rpms
, then
run this command:
yum -y install \
make \
golang \
bats \
btrfs-progs-devel \
device-mapper-devel \
glib2-devel \
gpgme-devel \
libassuan-devel \
ostree-devel \
git \
bzip2 \
go-md2man \
runc \
skopeo-containers
The build steps for Buildah on RHEL are the same as Fedora, above.
In Ubuntu zesty and xenial, you can use this command:
apt-get -y install software-properties-common
add-apt-repository -y ppa:alexlarsson/flatpak
add-apt-repository -y ppa:gophers/archive
apt-add-repository -y ppa:projectatomic/ppa
apt-get -y -qq update
apt-get -y install bats btrfs-tools git libapparmor-dev libdevmapper-dev libglib2.0-dev libgpgme11-dev libostree-dev libseccomp-dev libselinux1-dev skopeo-containers go-md2man
apt-get -y install golang-1.8
Then to install Buildah on Ubuntu 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
PATH=/usr/lib/go-1.8/bin:$PATH make runc all TAGS="apparmor seccomp"
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-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 (?)