Documentation ¶
Index ¶
- Constants
- Variables
- func InitReexec() bool
- func Push(image string, dest types.ImageReference, options PushOptions) error
- type AddAndCopyOptions
- type Builder
- func ImportBuilder(store storage.Store, options ImportOptions) (*Builder, error)
- func ImportBuilderFromImage(store storage.Store, options ImportFromImageOptions) (*Builder, error)
- func NewBuilder(store storage.Store, options BuilderOptions) (*Builder, error)
- func OpenAllBuilders(store storage.Store) (builders []*Builder, err error)
- func OpenBuilder(store storage.Store, container string) (*Builder, error)
- func OpenBuilderByPath(store storage.Store, path string) (*Builder, error)
- func (b *Builder) Add(destination string, extract bool, options AddAndCopyOptions, source ...string) error
- func (b *Builder) AddVolume(v string)
- func (b *Builder) Annotations() map[string]string
- func (b *Builder) Architecture() string
- func (b *Builder) ClearAnnotations()
- func (b *Builder) ClearEnv()
- func (b *Builder) ClearLabels()
- func (b *Builder) ClearPorts()
- func (b *Builder) ClearVolumes()
- func (b *Builder) Cmd() []string
- func (b *Builder) Commit(dest types.ImageReference, options CommitOptions) error
- func (b *Builder) CreatedBy() string
- func (b *Builder) Delete() error
- func (b *Builder) Domainname() string
- func (b *Builder) Entrypoint() []string
- func (b *Builder) Env() []string
- func (b *Builder) Hostname() string
- func (b *Builder) Labels() map[string]string
- func (b *Builder) Maintainer() string
- func (b *Builder) Mount(label string) (string, error)
- func (b *Builder) OS() string
- func (b *Builder) Ports() []string
- func (b *Builder) RemoveVolume(v string)
- func (b *Builder) Run(command []string, options RunOptions) error
- func (b *Builder) Save() error
- func (b *Builder) SetAnnotation(key, value string)
- func (b *Builder) SetArchitecture(arch string)
- func (b *Builder) SetCmd(cmd []string)
- func (b *Builder) SetCreatedBy(how string)
- func (b *Builder) SetDefaultMountsFilePath(path string)
- func (b *Builder) SetDomainname(name string)
- func (b *Builder) SetEntrypoint(ep []string)
- func (b *Builder) SetEnv(k string, v string)
- func (b *Builder) SetHostname(name string)
- func (b *Builder) SetLabel(k string, v string)
- func (b *Builder) SetMaintainer(who string)
- func (b *Builder) SetOS(os string)
- func (b *Builder) SetPort(p string)
- func (b *Builder) SetShell(shell []string)
- func (b *Builder) SetUser(spec string)
- func (b *Builder) SetWorkDir(there string)
- func (b *Builder) Shell() []string
- func (b *Builder) Unmount() error
- func (b *Builder) UnsetAnnotation(key string)
- func (b *Builder) UnsetEnv(k string)
- func (b *Builder) UnsetLabel(k string)
- func (b *Builder) UnsetPort(p string)
- func (b *Builder) User() string
- func (b *Builder) Volumes() []string
- func (b *Builder) WorkDir() string
- type BuilderInfo
- type BuilderOptions
- type CommitOptions
- type CommonBuildOptions
- type ImportFromImageOptions
- type ImportOptions
- type PushOptions
- type RunOptions
Constants ¶
const ( // Package is the name of this package, used in help output and to // identify working containers. Package = "buildah" // Version for the Package. Bump version in contrib/rpm/buildah.spec // too. Version = "0.16" )
const ( // PullIfMissing is one of the values that BuilderOptions.PullPolicy // can take, signalling that the source image should be pulled from a // registry if a local copy of it is not already present. PullIfMissing = iota // PullAlways is one of the values that BuilderOptions.PullPolicy can // take, signalling that a fresh, possibly updated, copy of the image // should be pulled from a registry before the build proceeds. PullAlways // PullNever is one of the values that BuilderOptions.PullPolicy can // take, signalling that the source image should not be pulled from a // registry if a local copy of it is not already present. PullNever )
const ( // OCIv1ImageManifest is the MIME type of an OCIv1 image manifest, // suitable for specifying as a value of the PreferredManifestType // member of a CommitOptions structure. It is also the default. OCIv1ImageManifest = v1.MediaTypeImageManifest // Dockerv2ImageManifest is the MIME type of a Docker v2s2 image // manifest, suitable for specifying as a value of the // PreferredManifestType member of a CommitOptions structure. Dockerv2ImageManifest = docker.V2S2MediaTypeManifest )
const ( // BaseImageFakeName is the "name" of a source image which we interpret // as "no image". BaseImageFakeName = imagebuilder.NoBaseImageSpecifier // DefaultTransport is a prefix that we apply to an image name if we // can't find one in the local Store, in order to generate a source // reference for the image that we can then copy to the local Store. DefaultTransport = "docker://" )
const ( // DefaultWorkingDir is used if none was specified. DefaultWorkingDir = "/" // DefaultRuntime is the default command to use to run the container. DefaultRuntime = "runc" )
const ( // DefaultTerminal indicates that this Run invocation should be // connected to a pseudoterminal if we're connected to a terminal. DefaultTerminal = iota // WithoutTerminal indicates that this Run invocation should NOT be // connected to a pseudoterminal. WithoutTerminal // WithTerminal indicates that this Run invocation should be connected // to a pseudoterminal. WithTerminal )
Variables ¶
var ( // DefaultMountsFile holds the default mount paths in the form // "host_path:container_path" DefaultMountsFile = "/usr/share/containers/mounts.conf" // OverrideMountsFile holds the default mount paths in the form // "host_path:container_path" overriden by the user OverrideMountsFile = "/etc/containers/mounts.conf" )
Functions ¶
func InitReexec ¶
func InitReexec() bool
InitReexec is a wrapper for reexec.Init(). It should be called at the start of main(), and if it returns true, main() should return immediately.
func Push ¶
func Push(image string, dest types.ImageReference, options PushOptions) error
Push copies the contents of the image to a new location.
Types ¶
type AddAndCopyOptions ¶
type AddAndCopyOptions struct {
Chown string
}
AddAndCopyOptions holds options for add and copy commands.
type Builder ¶
type Builder struct { // Type is used to help identify a build container's metadata. It // should not be modified. Type string `json:"type"` // FromImage is the name of the source image which was used to create // the container, if one was used. It should not be modified. FromImage string `json:"image,omitempty"` // FromImageID is the ID of the source image which was used to create // the container, if one was used. It should not be modified. FromImageID string `json:"image-id"` // Config is the source image's configuration. It should not be // modified. Config []byte `json:"config,omitempty"` // Manifest is the source image's manifest. It should not be modified. Manifest []byte `json:"manifest,omitempty"` // Container is the name of the build container. It should not be modified. Container string `json:"container-name,omitempty"` // ContainerID is the ID of the build container. It should not be modified. ContainerID string `json:"container-id,omitempty"` // MountPoint is the last location where the container's root // filesystem was mounted. It should not be modified. MountPoint string `json:"mountpoint,omitempty"` // ProcessLabel is the SELinux process label associated with the container ProcessLabel string `json:"process-label,omitempty"` // MountLabel is the SELinux mount label associated with the container MountLabel string `json:"mount-label,omitempty"` // ImageAnnotations is a set of key-value pairs which is stored in the // image's manifest. ImageAnnotations map[string]string `json:"annotations,omitempty"` // ImageCreatedBy is a description of how this container was built. ImageCreatedBy string `json:"created-by,omitempty"` // Image metadata and runtime settings, in multiple formats. OCIv1 v1.Image `json:"ociv1,omitempty"` Docker docker.V2Image `json:"docker,omitempty"` // DefaultMountsFilePath is the file path holding the mounts to be mounted in "host-path:container-path" format DefaultMountsFilePath string `json:"defaultMountsFilePath,omitempty"` CommonBuildOpts *CommonBuildOptions // contains filtered or unexported fields }
Builder objects are used to represent containers which are being used to build images. They also carry potential updates which will be applied to the image's configuration when the container's contents are used to build an image.
func ImportBuilder ¶
func ImportBuilder(store storage.Store, options ImportOptions) (*Builder, error)
ImportBuilder creates a new build configuration using an already-present container.
func ImportBuilderFromImage ¶
func ImportBuilderFromImage(store storage.Store, options ImportFromImageOptions) (*Builder, error)
ImportBuilderFromImage creates a new builder configuration using an image. The returned object can be modified and examined, but it can not be saved or committed because it is not associated with a working container.
func NewBuilder ¶
func NewBuilder(store storage.Store, options BuilderOptions) (*Builder, error)
NewBuilder creates a new build container.
func OpenAllBuilders ¶
OpenAllBuilders loads all containers which have a state file that we use in their data directory, typically so that they can be listed.
func OpenBuilder ¶
OpenBuilder loads information about a build container given its name or ID.
func OpenBuilderByPath ¶
OpenBuilderByPath loads information about a build container given a path to the container's root filesystem
func (*Builder) Add ¶
func (b *Builder) Add(destination string, extract bool, options AddAndCopyOptions, source ...string) error
Add copies the contents of the specified sources into the container's root filesystem, optionally extracting contents of local files that look like non-empty archives.
func (*Builder) AddVolume ¶
AddVolume adds a location to the image's list of locations which should be mounted from outside of the container when a container based on an image built from this container is run.
func (*Builder) Annotations ¶
Annotations returns a set of key-value pairs from the image's manifest.
func (*Builder) Architecture ¶
Architecture returns a name of the architecture on which the container, or a container built using an image built from this container, is intended to be run.
func (*Builder) ClearAnnotations ¶
func (b *Builder) ClearAnnotations()
ClearAnnotations removes all keys and their values from the image's manifest.
func (*Builder) ClearEnv ¶
func (b *Builder) ClearEnv()
ClearEnv removes all values from the set of environment strings which should be set when running commands in this container, or in a container built using an image built from this container.
func (*Builder) ClearLabels ¶
func (b *Builder) ClearLabels()
ClearLabels removes all keys and their values from the image's runtime configuration.
func (*Builder) ClearPorts ¶
func (b *Builder) ClearPorts()
ClearPorts empties the set of ports which should be exposed when a container based on an image built from this container is run.
func (*Builder) ClearVolumes ¶
func (b *Builder) ClearVolumes()
ClearVolumes removes all locations from the image's list of locations which should be mounted from outside of the container when a container based on an image built from this container is run.
func (*Builder) Cmd ¶
Cmd returns the default command, or command parameters if an Entrypoint is set, to use when running a container built from an image built from this container.
func (*Builder) Commit ¶
func (b *Builder) Commit(dest types.ImageReference, options CommitOptions) error
Commit writes the contents of the container, along with its updated configuration, to a new image in the specified location, and if we know how, add any additional tags that were specified.
func (*Builder) Delete ¶
Delete removes the working container. The buildah.Builder object should not be used after this method is called.
func (*Builder) Domainname ¶
Domainname returns the domainname which will be set in the container and in containers built using images built from the container.
func (*Builder) Entrypoint ¶
Entrypoint returns the command to be run for containers built from images built from this container.
func (*Builder) Env ¶
Env returns a list of key-value pairs to be set when running commands in the container, or in a container built using an image built from this container.
func (*Builder) Hostname ¶
Hostname returns the hostname which will be set in the container and in containers built using images built from the container.
func (*Builder) Labels ¶
Labels returns a set of key-value pairs from the image's runtime configuration.
func (*Builder) Maintainer ¶
Maintainer returns contact information for the person who built the image.
func (*Builder) Mount ¶
Mount mounts a container's root filesystem in a location which can be accessed from the host, and returns the location.
func (*Builder) OS ¶
OS returns a name of the OS on which the container, or a container built using an image built from this container, is intended to be run.
func (*Builder) Ports ¶
Ports returns the set of ports which should be exposed when a container based on an image built from this container is run.
func (*Builder) RemoveVolume ¶
RemoveVolume removes a location from the list of locations which should be mounted from outside of the container when a container based on an image built from this container is run.
func (*Builder) Run ¶
func (b *Builder) Run(command []string, options RunOptions) error
Run runs the specified command in the container's root filesystem.
func (*Builder) Save ¶
Save saves the builder's current state to the build container's metadata. This should not need to be called directly, as other methods of the Builder object take care of saving their state.
func (*Builder) SetAnnotation ¶
SetAnnotation adds or overwrites a key's value from the image's manifest. Note: this setting is not present in the Docker v2 image format, so it is discarded when writing images using Docker v2 formats.
func (*Builder) SetArchitecture ¶
SetArchitecture sets the name of the architecture on which the container, or a container built using an image built from this container, is intended to be run.
func (*Builder) SetCmd ¶
SetCmd sets the default command, or command parameters if an Entrypoint is set, to use when running a container built from an image built from this container.
func (*Builder) SetCreatedBy ¶
SetCreatedBy sets the description of how this image was built.
func (*Builder) SetDefaultMountsFilePath ¶
SetDefaultMountsFilePath sets the mounts file path for testing purposes
func (*Builder) SetDomainname ¶
SetDomainname sets the domainname which will be set in the container and in containers built using images built from the container. Note: this setting is not present in the OCIv1 image format, so it is discarded when writing images using OCIv1 formats.
func (*Builder) SetEntrypoint ¶
SetEntrypoint sets the command to be run for in containers built from images built from this container.
func (*Builder) SetEnv ¶
SetEnv adds or overwrites a value to the set of environment strings which should be set when running commands in the container, or in a container built using an image built from this container.
func (*Builder) SetHostname ¶
SetHostname sets the hostname which will be set in the container and in containers built using images built from the container. Note: this setting is not present in the OCIv1 image format, so it is discarded when writing images using OCIv1 formats.
func (*Builder) SetLabel ¶
SetLabel adds or overwrites a key's value from the image's runtime configuration.
func (*Builder) SetMaintainer ¶
SetMaintainer sets contact information for the person who built the image.
func (*Builder) SetOS ¶
SetOS sets the name of the OS on which the container, or a container built using an image built from this container, is intended to be run.
func (*Builder) SetPort ¶
SetPort adds or overwrites an exported port in the set of ports which should be exposed when a container based on an image built from this container is run.
func (*Builder) SetShell ¶
SetShell sets the default shell for running commands in the container, or in a container built using an image built from this container. Note: this setting is not present in the OCIv1 image format, so it is discarded when writing images using OCIv1 formats.
func (*Builder) SetUser ¶
SetUser sets information about the user as whom the container, or a container built using an image built from this container, should be run. Acceptable forms are a user name or ID, optionally followed by a colon and a group name or ID.
func (*Builder) SetWorkDir ¶
SetWorkDir sets the location of the default working directory for running commands in the container, or in a container built using an image built from this container.
func (*Builder) Shell ¶
Shell returns the default shell for running commands in the container, or in a container built using an image built from this container.
func (*Builder) UnsetAnnotation ¶
UnsetAnnotation removes a key and its value from the image's manifest, if it's present.
func (*Builder) UnsetEnv ¶
UnsetEnv removes a value from the set of environment strings which should be set when running commands in this container, or in a container built using an image built from this container.
func (*Builder) UnsetLabel ¶
UnsetLabel removes a key and its value from the image's runtime configuration, if it's present.
func (*Builder) UnsetPort ¶
UnsetPort removes an exposed port from the set of ports which should be exposed when a container based on an image built from this container is run.
func (*Builder) User ¶
User returns information about the user as whom the container, or a container built using an image built from this container, should be run.
type BuilderInfo ¶
type BuilderInfo struct { Type string FromImage string FromImageID string Config string Manifest string Container string ContainerID string MountPoint string ProcessLabel string MountLabel string ImageAnnotations map[string]string ImageCreatedBy string OCIv1 v1.Image Docker docker.V2Image DefaultMountsFilePath string }
BuilderInfo are used as objects to display container information
func GetBuildInfo ¶
func GetBuildInfo(b *Builder) BuilderInfo
GetBuildInfo gets a pointer to a Builder object and returns a BuilderInfo object from it. This is used in the inspect command to display Manifest and Config as string and not []byte.
type BuilderOptions ¶
type BuilderOptions struct { // FromImage is the name of the image which should be used as the // starting point for the container. It can be set to an empty value // or "scratch" to indicate that the container should not be based on // an image. FromImage string // Container is a desired name for the build container. Container string // PullPolicy decides whether or not we should pull the image that // we're using as a base image. It should be PullIfMissing, // PullAlways, or PullNever. PullPolicy int // Registry is a value which is prepended to the image's name, if it // needs to be pulled and the image name alone can not be resolved to a // reference to a source image. No separator is implicitly added. Registry string // Transport is a value which is prepended to the image's name, if it // needs to be pulled and the image name alone, or the image name and // the registry together, can not be resolved to a reference to a // source image. No separator is implicitly added. Transport string // Mount signals to NewBuilder() that the container should be mounted // immediately. Mount bool // SignaturePolicyPath specifies an override location for the signature // policy which should be used for verifying the new image as it is // being written. Except in specific circumstances, no value should be // specified, indicating that the shared, system-wide default policy // should be used. SignaturePolicyPath string // ReportWriter is an io.Writer which will be used to log the reading // of the source image from a registry, if we end up pulling the image. ReportWriter io.Writer // github.com/containers/image/types SystemContext to hold credentials // and other authentication/authorization information. SystemContext *types.SystemContext // DefaultMountsFilePath is the file path holding the mounts to be mounted in "host-path:container-path" format DefaultMountsFilePath string CommonBuildOpts *CommonBuildOptions }
BuilderOptions are used to initialize a new Builder.
type CommitOptions ¶
type CommitOptions struct { // PreferredManifestType is the preferred type of image manifest. The // image configuration format will be of a compatible type. PreferredManifestType string // Compression specifies the type of compression which is applied to // layer blobs. The default is to not use compression, but // archive.Gzip is recommended. Compression archive.Compression // SignaturePolicyPath specifies an override location for the signature // policy which should be used for verifying the new image as it is // being written. Except in specific circumstances, no value should be // specified, indicating that the shared, system-wide default policy // should be used. SignaturePolicyPath string // AdditionalTags is a list of additional names to add to the image, if // the transport to which we're writing the image gives us a way to add // them. AdditionalTags []string // ReportWriter is an io.Writer which will be used to log the writing // of the new image. ReportWriter io.Writer // HistoryTimestamp is the timestamp used when creating new items in the // image's history. If unset, the current time will be used. HistoryTimestamp *time.Time // github.com/containers/image/types SystemContext to hold credentials // and other authentication/authorization information. SystemContext *types.SystemContext }
CommitOptions can be used to alter how an image is committed.
type CommonBuildOptions ¶
type CommonBuildOptions struct { // AddHost is the list of hostnames to add to the resolv.conf AddHost []string //CgroupParent it the path to cgroups under which the cgroup for the container will be created. CgroupParent string //CPUPeriod limits the CPU CFS (Completely Fair Scheduler) period CPUPeriod uint64 //CPUQuota limits the CPU CFS (Completely Fair Scheduler) quota CPUQuota int64 CPUShares uint64 //CPUSetCPUs in which to allow execution (0-3, 0,1) CPUSetCPUs string //CPUSetMems memory nodes (MEMs) in which to allow execution (0-3, 0,1). Only effective on NUMA systems. CPUSetMems string //Memory limit Memory int64 //MemorySwap limit value equal to memory plus swap. MemorySwap int64 //SecruityOpts modify the way container security is running LabelOpts []string SeccompProfilePath string ApparmorProfile string //ShmSize is the shared memory size ShmSize string //Ulimit options Ulimit []string //Volumes to bind mount into the container Volumes []string }
CommonBuildOptions are reseources that can be defined by flags for both buildah from and bud
type ImportFromImageOptions ¶
type ImportFromImageOptions struct { // Image is the name or ID of the image we'd like to examine. Image string // SignaturePolicyPath specifies an override location for the signature // policy which should be used for verifying the new image as it is // being written. Except in specific circumstances, no value should be // specified, indicating that the shared, system-wide default policy // should be used. SignaturePolicyPath string // github.com/containers/image/types SystemContext to hold information // about which registries we should check for completing image names // that don't include a domain portion. SystemContext *types.SystemContext }
ImportFromImageOptions are used to initialize a Builder from an image.
type ImportOptions ¶
type ImportOptions struct { // Container is the name of the build container. Container string // SignaturePolicyPath specifies an override location for the signature // policy which should be used for verifying the new image as it is // being written. Except in specific circumstances, no value should be // specified, indicating that the shared, system-wide default policy // should be used. SignaturePolicyPath string }
ImportOptions are used to initialize a Builder from an existing container which was created elsewhere.
type PushOptions ¶
type PushOptions struct { // Compression specifies the type of compression which is applied to // layer blobs. The default is to not use compression, but // archive.Gzip is recommended. Compression archive.Compression // SignaturePolicyPath specifies an override location for the signature // policy which should be used for verifying the new image as it is // being written. Except in specific circumstances, no value should be // specified, indicating that the shared, system-wide default policy // should be used. SignaturePolicyPath string // ReportWriter is an io.Writer which will be used to log the writing // of the new image. ReportWriter io.Writer // Store is the local storage store which holds the source image. Store storage.Store // github.com/containers/image/types SystemContext to hold credentials // and other authentication/authorization information. SystemContext *types.SystemContext // ManifestType is the format to use when saving the imge using the 'dir' transport // possible options are oci, v2s1, and v2s2 ManifestType string }
PushOptions can be used to alter how an image is copied somewhere.
type RunOptions ¶
type RunOptions struct { // Hostname is the hostname we set for the running container. Hostname string // Runtime is the name of the command to run. It should accept the same arguments that runc does. Runtime string // Args adds global arguments for the runtime. Args []string // Mounts are additional mount points which we want to provide. Mounts []specs.Mount // Env is additional environment variables to set. Env []string // User is the user as whom to run the command. User string // WorkingDir is an override for the working directory. WorkingDir string // Shell is default shell to run in a container. Shell string // Cmd is an override for the configured default command. Cmd []string // Entrypoint is an override for the configured entry point. Entrypoint []string // NetworkDisabled puts the container into its own network namespace. NetworkDisabled bool // Terminal provides a way to specify whether or not the command should // be run with a pseudoterminal. By default (DefaultTerminal), a // terminal is used if os.Stdout is connected to a terminal, but that // decision can be overridden by specifying either WithTerminal or // WithoutTerminal. Terminal int // Quiet tells the run to turn off output to stdout. Quiet bool }
RunOptions can be used to alter how a command is run in the container.