Use mutable source directly

This commit is contained in:
Priya Wadhwa 2018-03-07 15:50:58 -08:00
parent 98826ef951
commit 04b9e4bcdf
No known key found for this signature in database
GPG Key ID: 0D0DAFD8F7AA73AE
3 changed files with 11 additions and 21 deletions

View File

@ -29,17 +29,17 @@ REPOPATH ?= $(ORG)/$(PROJECT)
GO_FILES := $(shell find . -type f -name '*.go' -not -path "./vendor/*") GO_FILES := $(shell find . -type f -name '*.go' -not -path "./vendor/*")
GO_LDFLAGS := '-extldflags "-static"' GO_LDFLAGS := '-extldflags "-static"'
GO_BUILD_TAGS := "containers_image_ostree_stub containers_image_openpgp exclude_graphdriver_devicemapper exclude_graphdriver_btrfs" GO_BUILD_TAGS := "containers_image_ostree_stub containers_image_openpgp exclude_graphdriver_devicemapper exclude_graphdriver_btrfs exclude_graphdriver_overlay"
EXECUTOR_PACKAGE = $(REPOPATH)/executor EXECUTOR_PACKAGE = $(REPOPATH)/executor
KBUILD_PACKAGE = $(REPOPATH)/kbuild KBUILD_PACKAGE = $(REPOPATH)/kbuild
out/executor: $(GO_FILES) out/executor: $(GO_FILES)
GOOS=$* GOARCH=$(GOARCH) CGO_ENABLED=1 go build -ldflags $(GO_LDFLAGS) -tags $(GO_BUILD_TAGS) -o $@ $(EXECUTOR_PACKAGE) GOOS=$* GOARCH=$(GOARCH) CGO_ENABLED=0 go build -ldflags $(GO_LDFLAGS) -tags $(GO_BUILD_TAGS) -o $@ $(EXECUTOR_PACKAGE)
out/kbuild: $(GO_FILES) out/kbuild: $(GO_FILES)
GOOS=$* GOARCH=$(GOARCH) CGO_ENABLED=1 go build -ldflags $(GO_LDFLAGS) -tags $(GO_BUILD_TAGS) -o $@ $(KBUILD_PACKAGE) GOOS=$* GOARCH=$(GOARCH) CGO_ENABLED=0 go build -ldflags $(GO_LDFLAGS) -tags $(GO_BUILD_TAGS) -o $@ $(KBUILD_PACKAGE)
.PHONY: test .PHONY: test
test: out/executor out/kbuild test: out/executor out/kbuild

View File

@ -83,12 +83,13 @@ func execute() error {
} }
// Initialize source image // Initialize source image
if err := image.InitializeSourceImage(baseImage); err != nil { sourceImage, err := image.NewSourceImage(baseImage)
if err != nil {
return err return err
} }
// Execute commands here // Execute commands here
// Push the image // Push the image
return image.PushImage(destination) return image.PushImage(sourceImage, destination)
} }

View File

@ -26,33 +26,22 @@ import (
) )
// sourceImage is the image that will be modified by the executor // sourceImage is the image that will be modified by the executor
var sourceImage img.MutableSource
// InitializeSourceImage initializes the source image with the base image // InitializeSourceImage initializes the source image with the base image
func InitializeSourceImage(srcImg string) error { func NewSourceImage(srcImg string) (*img.MutableSource, error) {
logrus.Infof("Initializing source image %s", srcImg) logrus.Infof("Initializing source image %s", srcImg)
ref, err := docker.ParseReference("//" + srcImg) ref, err := docker.ParseReference("//" + srcImg)
if err != nil { if err != nil {
return err return nil, err
} }
ms, err := img.NewMutableSource(ref) return img.NewMutableSource(ref)
if err != nil {
return err
}
sourceImage = *ms
return nil
}
// AppendLayer appends a layer onto the base image
func AppendLayer(contents []byte, author string) error {
return sourceImage.AppendLayer(contents, author)
} }
// PushImage pushes the final image // PushImage pushes the final image
func PushImage(destImg string) error { func PushImage(ms *img.MutableSource, destImg string) error {
srcRef := &img.ProxyReference{ srcRef := &img.ProxyReference{
ImageReference: nil, ImageReference: nil,
Src: &sourceImage, Src: ms,
} }
destRef, err := alltransports.ParseImageName("docker://" + destImg) destRef, err := alltransports.ParseImageName("docker://" + destImg)
if err != nil { if err != nil {