acbuild

module
v0.3.1 Latest Latest
Warning

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

Go to latest
Published: Jun 15, 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. Building from source requires Go 1.5+.

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/docker2aci/lib
Package docker2aci implements a simple library for converting docker images to App Container Images (ACIs).
Package docker2aci implements a simple library for converting docker images to App Container Images (ACIs).
_workspace/src/github.com/appc/docker2aci/lib/common
Package common provides misc types and variables.
Package common provides misc types and variables.
_workspace/src/github.com/appc/docker2aci/lib/internal
Package internal provides functions shared by different parts of docker2aci.
Package internal provides functions shared by different parts of docker2aci.
_workspace/src/github.com/appc/docker2aci/lib/internal/backend/file
Package file is an implementation of Docker2ACIBackend for files saved via "docker save".
Package file is an implementation of Docker2ACIBackend for files saved via "docker save".
_workspace/src/github.com/appc/docker2aci/lib/internal/backend/repository
Package repository is an implementation of Docker2ACIBackend for Docker remote registries.
Package repository is an implementation of Docker2ACIBackend for Docker remote registries.
_workspace/src/github.com/appc/docker2aci/lib/internal/tarball
Package tarball provides functions to manipulate tar files.
Package tarball provides functions to manipulate tar files.
_workspace/src/github.com/appc/docker2aci/lib/internal/types
Package types defines Docker image, URL and configuration types.
Package types defines Docker image, URL and configuration types.
_workspace/src/github.com/appc/docker2aci/lib/internal/util
Package util defines convenience functions for handling slices and debugging.
Package util defines convenience functions for handling slices and debugging.
_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/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/coreos/rkt/pkg/user
Package user allows resolving user UIDs/GIDs using various methods.
Package user allows resolving user UIDs/GIDs using various methods.
_workspace/src/github.com/docker/distribution/digest
Package digest provides a generalized type to opaquely represent message digests and their operations within the registry.
Package digest provides a generalized type to opaquely represent message digests and their operations within the registry.
_workspace/src/github.com/docker/distribution/reference
Package reference provides a general type to represent any way of referencing images within the registry.
Package reference provides a general type to represent any way of referencing images within the registry.
_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/klauspost/compress/flate
Package flate implements the DEFLATE compressed data format, described in RFC 1951.
Package flate implements the DEFLATE compressed data format, described in RFC 1951.
_workspace/src/github.com/klauspost/cpuid
Package cpuid provides information about the CPU running the current program.
Package cpuid provides information about the CPU running the current program.
_workspace/src/github.com/klauspost/crc32
Package crc32 implements the 32-bit cyclic redundancy check, or CRC-32, checksum.
Package crc32 implements the 32-bit cyclic redundancy check, or CRC-32, checksum.
_workspace/src/github.com/klauspost/pgzip
Package pgzip implements reading and writing of gzip format compressed files, as specified in RFC 1952.
Package pgzip implements reading and writing of gzip format compressed files, as specified in RFC 1952.
_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/go4.org/errorutil
Package errorutil helps make better error messages.
Package errorutil helps make better error messages.
_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