1
0
mirror of https://github.com/openshift/source-to-image.git synced 2026-02-05 12:44:54 +01:00

Add 'docker://' to the builder image if it doesn't have a scheme

This commit is contained in:
Igor Sutton Lopes
2020-02-10 13:15:39 +01:00
parent cb94360b47
commit 888560cf0d
2 changed files with 30 additions and 1 deletions

View File

@@ -5,6 +5,7 @@ import (
"github.com/containers/image/v5/transports/alltransports"
"github.com/containers/image/v5/types"
"github.com/spf13/cobra"
"strings"
"github.com/openshift/source-to-image/pkg/api"
"github.com/openshift/source-to-image/pkg/api/constants"
@@ -55,6 +56,14 @@ func adjustConfigWithImageLabels(cfg *api.Config, labels map[string]string) {
}
// CanonizeBuilderImageArg appends 'docker://' if the builder image doesn't contain the a schema.
func CanonizeBuilderImageArg(builderImage string) string {
if strings.Contains(builderImage, "://") {
return builderImage
}
return "docker://" + builderImage
}
// NewCmdGenerate implements the S2I cli generate command.
func NewCmdGenerate(cfg *api.Config) *cobra.Command {
generateCmd := &cobra.Command{
@@ -71,7 +80,9 @@ $ s2i generate docker://docker.io/centos/nodejs-10-centos7 Dockerfile.gen
return cmd.Help()
}
ref, err := alltransports.ParseImageName(cmd.Flags().Arg(0))
builderImageArg := CanonizeBuilderImageArg(cmd.Flags().Arg(0))
ref, err := alltransports.ParseImageName(builderImageArg)
if err != nil {
return err
}

18
test/generate_test.go Normal file
View File

@@ -0,0 +1,18 @@
package test
import (
"github.com/openshift/source-to-image/pkg/cmd/cli/cmd"
"testing"
)
func TestGenerate_canonizeBuilderImageArg(t *testing.T) {
assertCanonize := func(t *testing.T, input string, expected string) {
got := cmd.CanonizeBuilderImageArg(input)
if got != expected {
t.Fail()
}
}
assertCanonize(t, "docker://docker.io/centos/nodejs-10-centos7", "docker://docker.io/centos/nodejs-10-centos7")
assertCanonize(t, "docker.io/centos/nodejs-10-centos7", "docker://docker.io/centos/nodejs-10-centos7")
}