You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by nf...@apache.org on 2021/01/21 08:51:05 UTC
[camel-k] 01/02: Fix image location extraction.
This is an automated email from the ASF dual-hosted git repository.
nferraro pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel-k.git
commit c9f7ba1699da2b2b6dbca91e3b039054945545cb
Author: Doru Bercea <gh...@ibm.com>
AuthorDate: Wed Jan 20 17:35:09 2021 -0500
Fix image location extraction.
---
pkg/cmd/util_containerization.go | 7 +++++--
pkg/util/docker/docker.go | 13 ++++++-------
2 files changed, 11 insertions(+), 9 deletions(-)
diff --git a/pkg/cmd/util_containerization.go b/pkg/cmd/util_containerization.go
index dcbd97a..f633a0e 100644
--- a/pkg/cmd/util_containerization.go
+++ b/pkg/cmd/util_containerization.go
@@ -87,7 +87,7 @@ func setDockerEnvVars(envVars []string) {
}
}
-func createAndBuildBaseImage(ctx context.Context, containerRegistry string) error {
+func createAndBuildBaseImage(ctx context.Context) error {
// Create the base image Docker file.
err := docker.CreateBaseImageDockerFile()
if err != nil {
@@ -117,6 +117,9 @@ func createAndBuildIntegrationImage(ctx context.Context, containerRegistry strin
}
docker.RegistryName = containerRegistry
+
+ // If we build a normal image, i.e. not the base image, we need to parse
+ // the location where images will be pushed.
if !justBaseImage {
registryName, err := docker.ExtractRegistryName(image)
if err != nil {
@@ -127,7 +130,7 @@ func createAndBuildIntegrationImage(ctx context.Context, containerRegistry strin
}
// Create the Dockerfile and build the base image.
- err := createAndBuildBaseImage(ctx, containerRegistry)
+ err := createAndBuildBaseImage(ctx)
if err != nil {
return err
}
diff --git a/pkg/util/docker/docker.go b/pkg/util/docker/docker.go
index 228332d..6a777d3 100644
--- a/pkg/util/docker/docker.go
+++ b/pkg/util/docker/docker.go
@@ -146,14 +146,13 @@ func ExtractRegistryName(image string) (string, error) {
// There must be at least two components in the path:
// - docker.io/registry/imageName
- // - registry/imageName
+ // - localhost:5000/<dir>/imageName
+ // - localhost:5000/<dir>/.../<dir>/imageName
+ // - localhost:5000/imageName
if len(pathComponents) < 2 {
- return "", errors.New("image path is too short, usage: docker.io/registry/imageName or registry/imageName")
+ return "", errors.New("image path is too short, usage: registry/imageName or registry/*/imageName")
}
- // Check if path starts with docker.io if not, add it.
- if pathComponents[0] == "docker.io" {
- return strings.Join(pathComponents[0:2], containerFileSeparator), nil
- }
- return "docker.io" + containerFileSeparator + pathComponents[1], nil
+ // Register name is given by the path to the image.
+ return strings.Join(pathComponents[0:len(pathComponents)-1], containerFileSeparator), nil
}