acbuild

module
v0.3.0 Latest Latest
Warning

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

Go to latest
Published: May 14, 2016 License: Apache-2.0

README

acbuild

acbuild is a command line utility to build and modify App Container Images (ACIs), the container image format defined in the App Container (appc) spec.

Rationale

We needed a powerful tool for constructing and manipulating ACIs that made it easy to iteratively build containers, both from scratch and atop existing images. We wanted that tool to integrate well with Unix mechanisms like the shell and Makefiles so it would fit seamlessly into well-known administrator and developer workflows.

Installation

Dependencies

acbuild can only be run on a Linux system, and has only been tested on the amd64 architecture.

For trying out acbuild on Mac OS X, it's recommended to use Vagrant. Instructions on how to do this are a little further down in this document.

acbuild requires a handful of commands be available on the system on which it's run:

  • cp
  • modprobe
  • gpg

Additionally systemd-nspawn is required to use the default engine for acbuild run. Thus on Ubuntu the systemd-container package needs to be installed.

Prebuilt Binaries

The easiest way to get acbuild is to download one of the releases from GitHub.

Build from source

The other way to get acbuild is to build it from source.

Follow these steps to do so:

  1. Grab the source code for acbuild by git cloneing the source repository:

    cd ~
    git clone https://github.com/appc/acbuild
    
  2. Run the build script from the root source repository directory:

    cd acbuild
    ./build
    

    Or, if you want to build in docker (assuming $PWD exists and contains acbuild/ on your Docker host):

    cd acbuild
    ./build-docker
    
  3. A bin/ directory will be created that contains the acbuild tool. To make sure your shell can find this executable, append this directory to your environment's $PATH variable. You can do this in your .bashrc or similar file, for example:

    vi ~/.bashrc
    

and put the following lines at the end of the file:

export ACBUILD_BIN_DIR=~/acbuild/bin
export PATH=$PATH:$ACBUILD_BIN_DIR
Trying out acbuild using Vagrant

For users with Vagrant 1.5.x or greater, there's a provided Vagrantfile that can quickly get you set up with a Linux VM that has both acbuild and rkt. The following steps will grab acbuild, set up the machine, and ssh into it.

git clone https://github.com/appc/acbuild
cd acbuild
vagrant up
vagrant ssh

Documentation

Documentation about acbuild and many of its commands is available in the Documentation directory in this repository.

Examples

Check out the examples directory for some common applications being packaged into ACIs with acbuild.

Directories

Path Synopsis
Godeps
_workspace/src/github.com/appc/spec/aci
Package aci contains various functions for working with App Container Images.
Package aci contains various functions for working with App Container Images.
_workspace/src/github.com/appc/spec/discovery
Package discovery contains an experimental implementation of the Image Discovery section of the appc specification.
Package discovery contains an experimental implementation of the Image Discovery section of the appc specification.
_workspace/src/github.com/appc/spec/pkg/tarheader
Package tarheader contains a simple abstraction to accurately create tar.Headers on different operating systems.
Package tarheader contains a simple abstraction to accurately create tar.Headers on different operating systems.
_workspace/src/github.com/appc/spec/schema
Package schema provides definitions for the JSON schema of the different manifests in the App Container Specification.
Package schema provides definitions for the JSON schema of the different manifests in the App Container Specification.
_workspace/src/github.com/appc/spec/schema/types
Package types contains structs representing the various types in the app container specification.
Package types contains structs representing the various types in the app container specification.
_workspace/src/github.com/camlistore/camlistore/pkg/errorutil
Package errorutil helps make better error messages.
Package errorutil helps make better error messages.
_workspace/src/github.com/coreos/rkt/pkg/tar
Package tar contains helper functions for working with tar files
Package tar contains helper functions for working with tar files
_workspace/src/github.com/hashicorp/errwrap
Package errwrap implements methods to formalize error wrapping in Go.
Package errwrap implements methods to formalize error wrapping in Go.
_workspace/src/github.com/kylelemons/godebug/diff
Package diff implements a linewise diff algorithm.
Package diff implements a linewise diff algorithm.
_workspace/src/github.com/kylelemons/godebug/pretty
Package pretty pretty-prints Go structures.
Package pretty pretty-prints Go structures.
_workspace/src/github.com/russross/blackfriday
Blackfriday markdown processor.
Blackfriday markdown processor.
_workspace/src/github.com/shurcooL/sanitized_anchor_name
Package sanitized_anchor_name provides a func to create sanitized anchor names.
Package sanitized_anchor_name provides a func to create sanitized anchor names.
_workspace/src/github.com/spf13/cobra
Package cobra is a commander providing a simple interface to create powerful modern CLI interfaces.
Package cobra is a commander providing a simple interface to create powerful modern CLI interfaces.
_workspace/src/github.com/spf13/pflag
Package pflag is a drop-in replacement for Go's flag package, implementing POSIX/GNU-style --flags.
Package pflag is a drop-in replacement for Go's flag package, implementing POSIX/GNU-style --flags.
_workspace/src/github.com/syndtr/gocapability/capability
Package capability provides utilities for manipulating POSIX capabilities.
Package capability provides utilities for manipulating POSIX capabilities.
_workspace/src/golang.org/x/crypto/ssh/terminal
Package terminal provides support functions for dealing with terminals, as commonly found on UNIX systems.
Package terminal provides support functions for dealing with terminals, as commonly found on UNIX systems.
_workspace/src/golang.org/x/net/html
Package html implements an HTML5-compliant tokenizer and parser.
Package html implements an HTML5-compliant tokenizer and parser.
_workspace/src/golang.org/x/net/html/atom
Package atom provides integer codes (also known as atoms) for a fixed set of frequently occurring HTML strings: tag names and attribute keys such as "p" and "id".
Package atom provides integer codes (also known as atoms) for a fixed set of frequently occurring HTML strings: tag names and attribute keys such as "p" and "id".
_workspace/src/speter.net/go/exp/math/dec/inf
Package inf (type inf.Dec) implements "infinite-precision" decimal arithmetic.
Package inf (type inf.Dec) implements "infinite-precision" decimal arithmetic.
The registry package exists to manage ACIs for acbuild.
The registry package exists to manage ACIs for acbuild.

Jump to

Keyboard shortcuts

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