mirror of
https://github.com/containers/podman.git
synced 2025-12-09 07:09:03 +08:00
vendor: bump buildah to v1.32.1-0.20231012130144-244170240d85
Signed-off-by: Aditya R <arajan@redhat.com>
This commit is contained in:
47
vendor/github.com/containers/buildah/imagebuildah/executor.go
generated
vendored
47
vendor/github.com/containers/buildah/imagebuildah/executor.go
generated
vendored
@@ -142,6 +142,7 @@ type Executor struct {
|
||||
sshsources map[string]*sshagent.Source
|
||||
logPrefix string
|
||||
unsetEnvs []string
|
||||
unsetLabels []string
|
||||
processLabel string // Shares processLabel of first stage container with containers of other stages in same build
|
||||
mountLabel string // Shares mountLabel of first stage container with containers of other stages in same build
|
||||
buildOutput string // Specifies instructions for any custom build output
|
||||
@@ -300,6 +301,7 @@ func newExecutor(logger *logrus.Logger, logPrefix string, store storage.Store, o
|
||||
sshsources: sshsources,
|
||||
logPrefix: logPrefix,
|
||||
unsetEnvs: append([]string{}, options.UnsetEnvs...),
|
||||
unsetLabels: append([]string{}, options.UnsetLabels...),
|
||||
buildOutput: options.BuildOutput,
|
||||
osVersion: options.OSVersion,
|
||||
osFeatures: append([]string{}, options.OSFeatures...),
|
||||
@@ -468,14 +470,14 @@ func (b *Executor) getImageTypeAndHistoryAndDiffIDs(ctx context.Context, imageID
|
||||
return manifestFormat, oci.History, oci.RootFS.DiffIDs, nil
|
||||
}
|
||||
|
||||
func (b *Executor) buildStage(ctx context.Context, cleanupStages map[int]*StageExecutor, stages imagebuilder.Stages, stageIndex int) (imageID string, ref reference.Canonical, err error) {
|
||||
func (b *Executor) buildStage(ctx context.Context, cleanupStages map[int]*StageExecutor, stages imagebuilder.Stages, stageIndex int) (imageID string, ref reference.Canonical, onlyBaseImage bool, err error) {
|
||||
stage := stages[stageIndex]
|
||||
ib := stage.Builder
|
||||
node := stage.Node
|
||||
base, err := ib.From(node)
|
||||
if err != nil {
|
||||
logrus.Debugf("buildStage(node.Children=%#v)", node.Children)
|
||||
return "", nil, err
|
||||
return "", nil, false, err
|
||||
}
|
||||
|
||||
// If this is the last stage, then the image that we produce at
|
||||
@@ -506,7 +508,7 @@ func (b *Executor) buildStage(ctx context.Context, cleanupStages map[int]*StageE
|
||||
if len(labelLine) > 0 {
|
||||
additionalNode, err := imagebuilder.ParseDockerfile(strings.NewReader("LABEL" + labelLine + "\n"))
|
||||
if err != nil {
|
||||
return "", nil, fmt.Errorf("while adding additional LABEL step: %w", err)
|
||||
return "", nil, false, fmt.Errorf("while adding additional LABEL step: %w", err)
|
||||
}
|
||||
stage.Node.Children = append(stage.Node.Children, additionalNode.Children...)
|
||||
}
|
||||
@@ -525,13 +527,13 @@ func (b *Executor) buildStage(ctx context.Context, cleanupStages map[int]*StageE
|
||||
value := env[1]
|
||||
envLine += fmt.Sprintf(" %q=%q", key, value)
|
||||
} else {
|
||||
return "", nil, fmt.Errorf("BUG: unresolved environment variable: %q", key)
|
||||
return "", nil, false, fmt.Errorf("BUG: unresolved environment variable: %q", key)
|
||||
}
|
||||
}
|
||||
if len(envLine) > 0 {
|
||||
additionalNode, err := imagebuilder.ParseDockerfile(strings.NewReader("ENV" + envLine + "\n"))
|
||||
if err != nil {
|
||||
return "", nil, fmt.Errorf("while adding additional ENV step: %w", err)
|
||||
return "", nil, false, fmt.Errorf("while adding additional ENV step: %w", err)
|
||||
}
|
||||
// make this the first instruction in the stage after its FROM instruction
|
||||
stage.Node.Children = append(additionalNode.Children, stage.Node.Children...)
|
||||
@@ -572,8 +574,8 @@ func (b *Executor) buildStage(ctx context.Context, cleanupStages map[int]*StageE
|
||||
}
|
||||
|
||||
// Build this stage.
|
||||
if imageID, ref, err = stageExecutor.Execute(ctx, base); err != nil {
|
||||
return "", nil, err
|
||||
if imageID, ref, onlyBaseImage, err = stageExecutor.Execute(ctx, base); err != nil {
|
||||
return "", nil, onlyBaseImage, err
|
||||
}
|
||||
|
||||
// The stage succeeded, so remove its build container if we're
|
||||
@@ -586,7 +588,7 @@ func (b *Executor) buildStage(ctx context.Context, cleanupStages map[int]*StageE
|
||||
b.stagesLock.Unlock()
|
||||
}
|
||||
|
||||
return imageID, ref, nil
|
||||
return imageID, ref, onlyBaseImage, nil
|
||||
}
|
||||
|
||||
type stageDependencyInfo struct {
|
||||
@@ -878,10 +880,11 @@ func (b *Executor) Build(ctx context.Context, stages imagebuilder.Stages) (image
|
||||
b.warnOnUnsetBuildArgs(stages, dependencyMap, b.args)
|
||||
|
||||
type Result struct {
|
||||
Index int
|
||||
ImageID string
|
||||
Ref reference.Canonical
|
||||
Error error
|
||||
Index int
|
||||
ImageID string
|
||||
OnlyBaseImage bool
|
||||
Ref reference.Canonical
|
||||
Error error
|
||||
}
|
||||
|
||||
ch := make(chan Result, len(stages))
|
||||
@@ -941,21 +944,23 @@ func (b *Executor) Build(ctx context.Context, stages imagebuilder.Stages) (image
|
||||
return
|
||||
}
|
||||
}
|
||||
stageID, stageRef, stageErr := b.buildStage(ctx, cleanupStages, stages, index)
|
||||
stageID, stageRef, stageOnlyBaseImage, stageErr := b.buildStage(ctx, cleanupStages, stages, index)
|
||||
if stageErr != nil {
|
||||
cancel = true
|
||||
ch <- Result{
|
||||
Index: index,
|
||||
Error: stageErr,
|
||||
Index: index,
|
||||
Error: stageErr,
|
||||
OnlyBaseImage: stageOnlyBaseImage,
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
ch <- Result{
|
||||
Index: index,
|
||||
ImageID: stageID,
|
||||
Ref: stageRef,
|
||||
Error: nil,
|
||||
Index: index,
|
||||
ImageID: stageID,
|
||||
Ref: stageRef,
|
||||
OnlyBaseImage: stageOnlyBaseImage,
|
||||
Error: nil,
|
||||
}
|
||||
}()
|
||||
}
|
||||
@@ -985,7 +990,9 @@ func (b *Executor) Build(ctx context.Context, stages imagebuilder.Stages) (image
|
||||
// We're not populating the cache with intermediate
|
||||
// images, so add this one to the list of images that
|
||||
// we'll remove later.
|
||||
if !b.layers {
|
||||
// Only remove intermediate image is `--layers` is not provided
|
||||
// or following stage was not only a base image ( i.e a different image ).
|
||||
if !b.layers && !r.OnlyBaseImage {
|
||||
cleanupImages = append(cleanupImages, r.ImageID)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user