diff --git a/pkg/loader/compose/compose.go b/pkg/loader/compose/compose.go index 9c5646b9..aaeb444b 100644 --- a/pkg/loader/compose/compose.go +++ b/pkg/loader/compose/compose.go @@ -329,6 +329,11 @@ func (c *Compose) LoadFile(files []string) (kobject.KomposeObject, error) { envs := loadEnvVars(composeServiceConfig.Environment) serviceConfig.Environment = envs + //Validate dockerfile path + if filepath.IsAbs(serviceConfig.Dockerfile) { + log.Fatalf("%q defined in service %q is an absolute path, it must be a relative path.", serviceConfig.Dockerfile, name) + } + // load ports ports, err := loadPorts(composeServiceConfig.Ports) if err != nil { diff --git a/script/test/cmd/tests.sh b/script/test/cmd/tests.sh index 9650dfef..04256cf9 100755 --- a/script/test/cmd/tests.sh +++ b/script/test/cmd/tests.sh @@ -197,6 +197,8 @@ convert::expect_success_and_warning "kompose -f $KOMPOSE_ROOT/script/test/fixtur # Openshift Test convert::expect_success_and_warning "kompose --provider openshift -f $KOMPOSE_ROOT/script/test/fixtures/service-name-change/docker-compose.yml convert --stdout -j" "$KOMPOSE_ROOT/script/test/fixtures/service-name-change/output-os.json" "Unsupported root level volumes key - ignoring" +# Test regarding validating dockerfilepath +convert::expect_failure "kompose -f $KOMPOSE_ROOT/script/test/fixtures/dockerfilepath/docker-compose.yml convert --stdout" ###### # Test the output file behavior of kompose convert diff --git a/script/test/fixtures/dockerfilepath/docker-compose.yml b/script/test/fixtures/dockerfilepath/docker-compose.yml new file mode 100644 index 00000000..22ca7515 --- /dev/null +++ b/script/test/fixtures/dockerfilepath/docker-compose.yml @@ -0,0 +1,8 @@ +version: "2" + +services: + foo: + build: + context: "../../script/test_in_openshift/buildconfig" + dockerfile: "/Dockerfile" + command: "sleep 120"