Skip to content

Commit 1e677f4

Browse files
committed
saving image when using simple build engine for the buildimage command
Signed-off-by: Kyle Quest <kcq.public@gmail.com>
1 parent dee58d4 commit 1e677f4

File tree

4 files changed

+22
-12
lines changed

4 files changed

+22
-12
lines changed

pkg/app/master/command/imagebuild/handle_engine_simple.go

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -61,9 +61,10 @@ func HandleSimpleEngine(
6161
doShowBuildLogs := true
6262
builder, err := internalbuilder.New(doShowBuildLogs, false, false)
6363
options := imagebuilder.SimpleBuildOptions{
64-
From: cparams.BaseImage,
65-
FromTar: cparams.BaseImageTar,
66-
Tags: []string{cparams.ImageName},
64+
OutputImageTar: cparams.ImageArchiveFile,
65+
From: cparams.BaseImage,
66+
FromTar: cparams.BaseImageTar,
67+
Tags: []string{cparams.ImageName},
6768
Layers: []imagebuilder.LayerDataInfo{
6869
{
6970
Type: imagebuilder.FileSource,

pkg/app/master/command/registry/handler_push.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -155,7 +155,7 @@ func pushImageFromTar(
155155
remoteImageName string,
156156
nameOpts []name.Option,
157157
remoteOpts []remote.Option) error {
158-
logger = logger.WithField("op", "registry.saveDockerImage")
158+
logger = logger.WithField("op", "registry.pushImageFromTar")
159159
logger.Trace("call")
160160
defer logger.Trace("exit")
161161

pkg/imagebuilder/imagebuilder.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,7 @@ type SimpleBuildOptions struct {
112112
Layers []LayerDataInfo
113113
ImageConfig *ImageConfig
114114
HideBuildHistory bool
115+
OutputImageTar string
115116

116117
/*
117118
//todo: add 'Healthcheck'

pkg/imagebuilder/internalbuilder/engine.go

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -278,16 +278,17 @@ func (ref *Engine) Build(options imagebuilder.SimpleBuildOptions) (*imagebuilder
278278
return nil, err
279279
}
280280

281-
s2t := func(val string) v1.Time {
282-
ptime, err := time.Parse(time.RFC3339, val)
283-
if err != nil {
284-
log.WithError(err).Error("time.Parse")
285-
return v1.Time{Time: time.Now()}
281+
newImageConfig = newImageConfig.DeepCopy()
282+
if options.ImageConfig != nil {
283+
s2t := func(val string) v1.Time {
284+
ptime, err := time.Parse(time.RFC3339, val)
285+
if err != nil {
286+
log.WithError(err).Error("time.Parse")
287+
return v1.Time{Time: time.Now()}
288+
}
289+
return v1.Time{Time: ptime}
286290
}
287-
return v1.Time{Time: ptime}
288-
}
289291

290-
if options.ImageConfig != nil {
291292
if len(options.ImageConfig.History) > 0 {
292293
var history []v1.History
293294
for _, h := range options.ImageConfig.History {
@@ -597,6 +598,13 @@ func (ref *Engine) Build(options imagebuilder.SimpleBuildOptions) (*imagebuilder
597598
return nil, err
598599
}
599600

601+
if options.OutputImageTar != "" {
602+
if err := tarball.WriteToFile(options.OutputImageTar, tag, newImg); err != nil {
603+
log.WithError(err).Errorf("tarball.WriteToFile(%s, %s)", options.OutputImageTar, options.Tags[0])
604+
return nil, err
605+
}
606+
}
607+
600608
if ref.PushToDaemon {
601609
log.Debug("DefaultSimpleBuilder.Build: saving image to Docker")
602610
imageLoadResponseStr, err := daemon.Write(tag, newImg)

0 commit comments

Comments
 (0)