From 29c831f9d6abf8d650bc7feb63a1e60876238504 Mon Sep 17 00:00:00 2001 From: Daniel J Walsh Date: Thu, 31 May 2018 12:38:41 -0400 Subject: Add OnBuild support for podman build Only supported for docker formated images. OCI Does not support this flag. Signed-off-by: Daniel J Walsh --- vendor/github.com/projectatomic/buildah/commit.go | 3 +++ vendor/github.com/projectatomic/buildah/config.go | 22 ++++++++++++++++++++-- .../projectatomic/buildah/imagebuildah/build.go | 8 ++++++++ .../buildah/imagebuildah/chroot_symlink.go | 2 +- .../projectatomic/buildah/pkg/cli/common.go | 4 ++++ 5 files changed, 36 insertions(+), 3 deletions(-) (limited to 'vendor/github.com/projectatomic/buildah') diff --git a/vendor/github.com/projectatomic/buildah/commit.go b/vendor/github.com/projectatomic/buildah/commit.go index 75d2626f5..ab46a0643 100644 --- a/vendor/github.com/projectatomic/buildah/commit.go +++ b/vendor/github.com/projectatomic/buildah/commit.go @@ -52,6 +52,9 @@ type CommitOptions struct { // Squash tells the builder to produce an image with a single layer // instead of with possibly more than one layer. Squash bool + + // OnBuild is a list of commands to be run by images based on this image + OnBuild []string } // PushOptions can be used to alter how an image is copied somewhere. diff --git a/vendor/github.com/projectatomic/buildah/config.go b/vendor/github.com/projectatomic/buildah/config.go index c5fabdec6..3d67895da 100644 --- a/vendor/github.com/projectatomic/buildah/config.go +++ b/vendor/github.com/projectatomic/buildah/config.go @@ -331,6 +331,24 @@ func (b *Builder) SetUser(spec string) { b.Docker.Config.User = spec } +// OnBuild returns the OnBuild value from the container. +func (b *Builder) OnBuild() []string { + return copyStringSlice(b.Docker.Config.OnBuild) +} + +// ClearOnBuild removes all values from the OnBuild structure +func (b *Builder) ClearOnBuild() { + b.Docker.Config.OnBuild = []string{} +} + +// SetOnBuild sets a trigger instruction to be executed when the image is used +// as the base of another image. +// Note: this setting is not present in the OCIv1 image format, so it is +// discarded when writing images using OCIv1 formats. +func (b *Builder) SetOnBuild(onBuild string) { + b.Docker.Config.OnBuild = append(b.Docker.Config.OnBuild, onBuild) +} + // WorkDir returns the default working directory for running commands in the // container, or in a container built using an image built from this container. func (b *Builder) WorkDir() string { @@ -348,7 +366,7 @@ func (b *Builder) SetWorkDir(there string) { // Shell returns the default shell for running commands in the // container, or in a container built using an image built from this container. func (b *Builder) Shell() []string { - return b.Docker.Config.Shell + return copyStringSlice(b.Docker.Config.Shell) } // SetShell sets the default shell for running @@ -357,7 +375,7 @@ func (b *Builder) Shell() []string { // Note: this setting is not present in the OCIv1 image format, so it is // discarded when writing images using OCIv1 formats. func (b *Builder) SetShell(shell []string) { - b.Docker.Config.Shell = shell + b.Docker.Config.Shell = copyStringSlice(shell) } // Env returns a list of key-value pairs to be set when running commands in the diff --git a/vendor/github.com/projectatomic/buildah/imagebuildah/build.go b/vendor/github.com/projectatomic/buildah/imagebuildah/build.go index a2e2912e3..f3d28510a 100644 --- a/vendor/github.com/projectatomic/buildah/imagebuildah/build.go +++ b/vendor/github.com/projectatomic/buildah/imagebuildah/build.go @@ -138,6 +138,8 @@ type BuildOptions struct { Labels []string // Annotation metadata for an image Annotations []string + // OnBuild commands to be run by images based on this image + OnBuild []string } // Executor is a buildah-based implementation of the imagebuilder.Executor @@ -183,6 +185,7 @@ type Executor struct { squash bool labels []string annotations []string + onbuild []string } // withName creates a new child executor that will be used whenever a COPY statement uses --from=NAME. @@ -598,6 +601,7 @@ func (b *Executor) Prepare(ctx context.Context, ib *imagebuilder.Builder, node * Labels: builder.Labels(), Shell: builder.Shell(), StopSignal: builder.StopSignal(), + OnBuild: builder.OnBuild(), } var rootfs *docker.RootFS if builder.Docker.RootFS != nil { @@ -714,6 +718,10 @@ func (b *Executor) Commit(ctx context.Context, ib *imagebuilder.Builder) (err er for v := range config.Volumes { b.builder.AddVolume(v) } + b.builder.ClearOnBuild() + for _, onBuildSpec := range config.OnBuild { + b.builder.SetOnBuild(onBuildSpec) + } b.builder.SetWorkDir(config.WorkingDir) b.builder.SetEntrypoint(config.Entrypoint) b.builder.SetShell(config.Shell) diff --git a/vendor/github.com/projectatomic/buildah/imagebuildah/chroot_symlink.go b/vendor/github.com/projectatomic/buildah/imagebuildah/chroot_symlink.go index b2452b61c..f1fec7f70 100644 --- a/vendor/github.com/projectatomic/buildah/imagebuildah/chroot_symlink.go +++ b/vendor/github.com/projectatomic/buildah/imagebuildah/chroot_symlink.go @@ -37,7 +37,7 @@ func resolveChrootedSymlinks() { os.Exit(1) } - // Our second paramter is the path name to evaluate for symbolic links + // Our second parameter is the path name to evaluate for symbolic links symLink, err := getSymbolicLink(flag.Arg(0), flag.Arg(1)) if err != nil { fmt.Fprintf(os.Stderr, "error getting symbolic links: %v\n", err) diff --git a/vendor/github.com/projectatomic/buildah/pkg/cli/common.go b/vendor/github.com/projectatomic/buildah/pkg/cli/common.go index e4a30a315..a7b61d561 100644 --- a/vendor/github.com/projectatomic/buildah/pkg/cli/common.go +++ b/vendor/github.com/projectatomic/buildah/pkg/cli/common.go @@ -152,6 +152,10 @@ var ( Name: "squash", Usage: "Squash newly built layers into a single new layer. Buildah does not currently support caching so this is a NOOP.", }, + cli.BoolTFlag{ + Name: "stream", + Usage: "There is no daemon in use, so this command is a NOOP.", + }, cli.StringSliceFlag{ Name: "tag, t", Usage: "tagged `name` to apply to the built image", -- cgit v1.2.3-54-g00ecf