Close docker client (#789)
* Close docker client! * Fix nil dereference * Update run_context.go * Bump Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
This commit is contained in:
parent
f8ddfca6f7
commit
83a28d9512
7 changed files with 24 additions and 3 deletions
|
@ -38,6 +38,7 @@ func NewDockerBuildExecutor(input NewDockerBuildExecutorInput) common.Executor {
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
defer cli.Close()
|
||||||
|
|
||||||
logger.Debugf("Building image from '%v'", input.ContextDir)
|
logger.Debugf("Building image from '%v'", input.ContextDir)
|
||||||
|
|
||||||
|
|
|
@ -15,6 +15,7 @@ func ImageExistsLocally(ctx context.Context, imageName string, platform string)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return false, err
|
return false, err
|
||||||
}
|
}
|
||||||
|
defer cli.Close()
|
||||||
|
|
||||||
filters := filters.NewArgs()
|
filters := filters.NewArgs()
|
||||||
filters.Add("reference", imageName)
|
filters.Add("reference", imageName)
|
||||||
|
|
|
@ -57,6 +57,7 @@ func NewDockerPullExecutor(input NewDockerPullExecutorInput) common.Executor {
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
defer cli.Close()
|
||||||
|
|
||||||
imagePullOptions, err := getImagePullOptions(ctx, input)
|
imagePullOptions, err := getImagePullOptions(ctx, input)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|
|
@ -76,6 +76,7 @@ type Container interface {
|
||||||
UpdateFromImageEnv(env *map[string]string) common.Executor
|
UpdateFromImageEnv(env *map[string]string) common.Executor
|
||||||
UpdateFromPath(env *map[string]string) common.Executor
|
UpdateFromPath(env *map[string]string) common.Executor
|
||||||
Remove() common.Executor
|
Remove() common.Executor
|
||||||
|
Close() common.Executor
|
||||||
}
|
}
|
||||||
|
|
||||||
// NewContainer creates a reference to a container
|
// NewContainer creates a reference to a container
|
||||||
|
@ -246,6 +247,16 @@ func (cr *containerReference) connect() common.Executor {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (cr *containerReference) Close() common.Executor {
|
||||||
|
return func(ctx context.Context) error {
|
||||||
|
if cr.cli != nil {
|
||||||
|
cr.cli.Close()
|
||||||
|
cr.cli = nil
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func (cr *containerReference) find() common.Executor {
|
func (cr *containerReference) find() common.Executor {
|
||||||
return func(ctx context.Context) error {
|
return func(ctx context.Context) error {
|
||||||
if cr.id != "" {
|
if cr.id != "" {
|
||||||
|
|
|
@ -13,6 +13,7 @@ func NewDockerVolumeRemoveExecutor(volume string, force bool) common.Executor {
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
defer cli.Close()
|
||||||
|
|
||||||
list, err := cli.VolumeList(ctx, filters.NewArgs())
|
list, err := cli.VolumeList(ctx, filters.NewArgs())
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -43,6 +44,7 @@ func removeExecutor(volume string, force bool) common.Executor {
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
defer cli.Close()
|
||||||
|
|
||||||
return cli.VolumeRemove(ctx, volume, force)
|
return cli.VolumeRemove(ctx, volume, force)
|
||||||
}
|
}
|
||||||
|
|
|
@ -231,7 +231,12 @@ func (rc *RunContext) Executor() common.Executor {
|
||||||
}
|
}
|
||||||
steps = append(steps, rc.stopJobContainer())
|
steps = append(steps, rc.stopJobContainer())
|
||||||
|
|
||||||
return common.NewPipelineExecutor(steps...).If(rc.isEnabled)
|
return common.NewPipelineExecutor(steps...).Finally(func(ctx context.Context) error {
|
||||||
|
if rc.JobContainer != nil {
|
||||||
|
return rc.JobContainer.Close()(ctx)
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}).If(rc.isEnabled)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (rc *RunContext) newStepExecutor(step *model.Step) common.Executor {
|
func (rc *RunContext) newStepExecutor(step *model.Step) common.Executor {
|
||||||
|
|
|
@ -332,7 +332,7 @@ func (sc *StepContext) runUsesContainer() common.Executor {
|
||||||
stepContainer.Start(true),
|
stepContainer.Start(true),
|
||||||
).Finally(
|
).Finally(
|
||||||
stepContainer.Remove().IfBool(!rc.Config.ReuseContainers),
|
stepContainer.Remove().IfBool(!rc.Config.ReuseContainers),
|
||||||
)(ctx)
|
).Finally(stepContainer.Close())(ctx)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -589,7 +589,7 @@ func (sc *StepContext) execAsDocker(ctx context.Context, action *model.Action, a
|
||||||
stepContainer.Start(true),
|
stepContainer.Start(true),
|
||||||
).Finally(
|
).Finally(
|
||||||
stepContainer.Remove().IfBool(!rc.Config.ReuseContainers),
|
stepContainer.Remove().IfBool(!rc.Config.ReuseContainers),
|
||||||
)(ctx)
|
).Finally(stepContainer.Close())(ctx)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (sc *StepContext) execAsComposite(ctx context.Context, step *model.Step, _ string, rc *RunContext, containerActionDir string, actionName string, _ string, action *model.Action, maybeCopyToActionDir func() error) error {
|
func (sc *StepContext) execAsComposite(ctx context.Context, step *model.Step, _ string, rc *RunContext, containerActionDir string, actionName string, _ string, action *model.Action, maybeCopyToActionDir func() error) error {
|
||||||
|
|
Loading…
Reference in a new issue