Test git buildcontext
This commit is contained in:
parent
3da2fdf2d0
commit
8b459b57aa
|
|
@ -1,2 +0,0 @@
|
||||||
FROM scratch
|
|
||||||
COPY LICENSE /LICENSE
|
|
||||||
|
|
@ -71,7 +71,6 @@ var additionalKanikoFlagsMap = map[string][]string{
|
||||||
"Dockerfile_test_target": {"--target=second"},
|
"Dockerfile_test_target": {"--target=second"},
|
||||||
}
|
}
|
||||||
|
|
||||||
var gitRepoTests = []string{"Dockerfile_test_git"}
|
|
||||||
var bucketContextTests = []string{"Dockerfile_test_copy_bucket"}
|
var bucketContextTests = []string{"Dockerfile_test_copy_bucket"}
|
||||||
var reproducibleTests = []string{"Dockerfile_test_reproducible"}
|
var reproducibleTests = []string{"Dockerfile_test_reproducible"}
|
||||||
|
|
||||||
|
|
@ -157,15 +156,11 @@ func (d *DockerFileBuilder) BuildImage(imageRepo, gcsBucket, dockerfilesPath, do
|
||||||
// build docker image
|
// build docker image
|
||||||
additionalFlags := append(buildArgs, additionalDockerFlagsMap[dockerfile]...)
|
additionalFlags := append(buildArgs, additionalDockerFlagsMap[dockerfile]...)
|
||||||
dockerImage := strings.ToLower(imageRepo + dockerPrefix + dockerfile)
|
dockerImage := strings.ToLower(imageRepo + dockerPrefix + dockerfile)
|
||||||
dockerPath := "."
|
|
||||||
if dockerfile == "Dockerfile_test_git" {
|
|
||||||
dockerPath = "https://github.com/GoogleContainerTools/kaniko"
|
|
||||||
}
|
|
||||||
dockerCmd := exec.Command("docker",
|
dockerCmd := exec.Command("docker",
|
||||||
append([]string{"build",
|
append([]string{"build",
|
||||||
"-t", dockerImage,
|
"-t", dockerImage,
|
||||||
"-f", path.Join(dockerfilesPath, dockerfile),
|
"-f", path.Join(dockerfilesPath, dockerfile),
|
||||||
dockerPath},
|
"."},
|
||||||
additionalFlags...)...,
|
additionalFlags...)...,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
@ -185,12 +180,6 @@ func (d *DockerFileBuilder) BuildImage(imageRepo, gcsBucket, dockerfilesPath, do
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, d := range gitRepoTests {
|
|
||||||
if d == dockerfile {
|
|
||||||
contextPath = "git://https://github.com/GoogleContainerTools/kaniko"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
reproducibleFlag := ""
|
reproducibleFlag := ""
|
||||||
for _, d := range reproducibleTests {
|
for _, d := range reproducibleTests {
|
||||||
if d == dockerfile {
|
if d == dockerfile {
|
||||||
|
|
|
||||||
|
|
@ -30,10 +30,9 @@ import (
|
||||||
"testing"
|
"testing"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"golang.org/x/sync/errgroup"
|
|
||||||
|
|
||||||
"github.com/google/go-containerregistry/pkg/name"
|
"github.com/google/go-containerregistry/pkg/name"
|
||||||
"github.com/google/go-containerregistry/pkg/v1/daemon"
|
"github.com/google/go-containerregistry/pkg/v1/daemon"
|
||||||
|
"golang.org/x/sync/errgroup"
|
||||||
|
|
||||||
"github.com/GoogleContainerTools/kaniko/pkg/timing"
|
"github.com/GoogleContainerTools/kaniko/pkg/timing"
|
||||||
"github.com/GoogleContainerTools/kaniko/pkg/util"
|
"github.com/GoogleContainerTools/kaniko/pkg/util"
|
||||||
|
|
@ -236,6 +235,49 @@ func TestRun(t *testing.T) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestGitBuildcontext(t *testing.T) {
|
||||||
|
repo := "github.com/GoogleContainerTools/kaniko"
|
||||||
|
dockerfile := "integration/dockerfiles/Dockerfile_test_run_2"
|
||||||
|
|
||||||
|
// Build with docker
|
||||||
|
dockerImage := GetDockerImage(config.imageRepo, "Dockerfile_test_git")
|
||||||
|
dockerCmd := exec.Command("docker",
|
||||||
|
append([]string{"build",
|
||||||
|
"-t", dockerImage,
|
||||||
|
"-f", dockerfile,
|
||||||
|
repo})...)
|
||||||
|
out, err := RunCommandWithoutTest(dockerCmd)
|
||||||
|
if err != nil {
|
||||||
|
t.Errorf("Failed to build image %s with docker command \"%s\": %s %s", dockerImage, dockerCmd.Args, err, string(out))
|
||||||
|
}
|
||||||
|
|
||||||
|
// Build with kaniko
|
||||||
|
kanikoImage := GetKanikoImage(config.imageRepo, "Dockerfile_test_git")
|
||||||
|
kanikoCmd := exec.Command("docker",
|
||||||
|
append([]string{"run",
|
||||||
|
"-v", os.Getenv("HOME") + "/.config/gcloud:/root/.config/gcloud",
|
||||||
|
ExecutorImage,
|
||||||
|
"-f", dockerfile,
|
||||||
|
"-d", kanikoImage,
|
||||||
|
"-c", fmt.Sprintf("git://%s", repo)})...)
|
||||||
|
|
||||||
|
out, err = RunCommandWithoutTest(kanikoCmd)
|
||||||
|
if err != nil {
|
||||||
|
t.Errorf("Failed to build image %s with kaniko command \"%s\": %v %s", dockerImage, kanikoCmd.Args, err, string(out))
|
||||||
|
}
|
||||||
|
|
||||||
|
// container-diff
|
||||||
|
daemonDockerImage := daemonPrefix + dockerImage
|
||||||
|
containerdiffCmd := exec.Command("container-diff", "diff", "--no-cache",
|
||||||
|
daemonDockerImage, kanikoImage,
|
||||||
|
"-q", "--type=file", "--type=metadata", "--json")
|
||||||
|
diff := RunCommand(containerdiffCmd, t)
|
||||||
|
t.Logf("diff = %s", string(diff))
|
||||||
|
|
||||||
|
expected := fmt.Sprintf(emptyContainerDiff, dockerImage, kanikoImage, dockerImage, kanikoImage)
|
||||||
|
checkContainerDiffOutput(t, diff, expected)
|
||||||
|
}
|
||||||
|
|
||||||
func TestLayers(t *testing.T) {
|
func TestLayers(t *testing.T) {
|
||||||
offset := map[string]int{
|
offset := map[string]int{
|
||||||
"Dockerfile_test_add": 11,
|
"Dockerfile_test_add": 11,
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue