From a2a731f30cdec139375e89235f4e3a9766ee3e26 Mon Sep 17 00:00:00 2001 From: Ratnadeep Debnath Date: Thu, 20 Oct 2016 20:49:36 +0530 Subject: [PATCH] Generate context path relative to project root dir in buildconfig. --- pkg/transformer/openshift/openshift.go | 28 +++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/pkg/transformer/openshift/openshift.go b/pkg/transformer/openshift/openshift.go index 4a66bfea..943454ee 100644 --- a/pkg/transformer/openshift/openshift.go +++ b/pkg/transformer/openshift/openshift.go @@ -18,7 +18,9 @@ package openshift import ( "fmt" + "os" "os/exec" + "path/filepath" "strings" "github.com/kubernetes-incubator/kompose/pkg/kobject" @@ -84,6 +86,30 @@ func getGitRemote(remote string) string { return string(out) } +// getAbsBuildContext returns build context relative to project root dir +func getAbsBuildContext(context string) string { + out, err := exec.Command("git", "rev-parse", "--show-toplevel").Output() + if err != nil { + return "" + } + rootDir := strings.Trim(string(out), "\n") + + var workDir string + workDir, err = os.Getwd() + if err != nil { + return "" + } + + var relPath string + relPath, err = filepath.Rel(rootDir, workDir) + + if err != nil { + return "" + } + + return relPath +} + // initImageStream initialize ImageStream object func (o *OpenShift) initImageStream(name string, service kobject.ServiceConfig) *imageapi.ImageStream { tag := getImageTag(service.Image) @@ -134,7 +160,7 @@ func initBuildConfig(name string, service kobject.ServiceConfig) *buildapi.Build Ref: "master", URI: getGitRemote("origin"), }, - ContextDir: "./", + ContextDir: getAbsBuildContext(service.Build), }, Strategy: buildapi.BuildStrategy{ DockerStrategy: &buildapi.DockerBuildStrategy{