forked from testcontainers/testcontainers-go
-
Notifications
You must be signed in to change notification settings - Fork 0
/
from_dockerfile_test.go
119 lines (99 loc) · 2.38 KB
/
from_dockerfile_test.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
package testcontainers
import (
"context"
"path/filepath"
"strings"
"testing"
"github.com/docker/docker/api/types"
"github.com/stretchr/testify/assert"
)
func TestBuildImageFromDockerfile(t *testing.T) {
provider, err := NewDockerProvider()
if err != nil {
t.Fatal(err)
}
defer provider.Close()
cli := provider.Client()
ctx := context.Background()
tag, err := provider.BuildImage(ctx, &ContainerRequest{
// fromDockerfileIncludingRepo {
FromDockerfile: FromDockerfile{
Context: filepath.Join("testdata"),
Dockerfile: "echo.Dockerfile",
Repo: "test-repo",
Tag: "test-tag",
},
// }
})
assert.Nil(t, err)
assert.Equal(t, "test-repo:test-tag", tag)
_, _, err = cli.ImageInspectWithRaw(ctx, tag)
assert.Nil(t, err)
t.Cleanup(func() {
_, err := cli.ImageRemove(ctx, tag, types.ImageRemoveOptions{
Force: true,
PruneChildren: true,
})
if err != nil {
t.Fatal(err)
}
})
}
func TestBuildImageFromDockerfile_NoRepo(t *testing.T) {
provider, err := NewDockerProvider()
if err != nil {
t.Fatal(err)
}
defer provider.Close()
cli := provider.Client()
ctx := context.Background()
tag, err := provider.BuildImage(ctx, &ContainerRequest{
FromDockerfile: FromDockerfile{
Context: filepath.Join("testdata"),
Dockerfile: "echo.Dockerfile",
Repo: "test-repo",
},
})
assert.Nil(t, err)
assert.True(t, strings.HasPrefix(tag, "test-repo:"))
_, _, err = cli.ImageInspectWithRaw(ctx, tag)
assert.Nil(t, err)
t.Cleanup(func() {
_, err := cli.ImageRemove(ctx, tag, types.ImageRemoveOptions{
Force: true,
PruneChildren: true,
})
if err != nil {
t.Fatal(err)
}
})
}
func TestBuildImageFromDockerfile_NoTag(t *testing.T) {
provider, err := NewDockerProvider()
if err != nil {
t.Fatal(err)
}
defer provider.Close()
cli := provider.Client()
ctx := context.Background()
tag, err := provider.BuildImage(ctx, &ContainerRequest{
FromDockerfile: FromDockerfile{
Context: filepath.Join("testdata"),
Dockerfile: "echo.Dockerfile",
Tag: "test-tag",
},
})
assert.Nil(t, err)
assert.True(t, strings.HasSuffix(tag, ":test-tag"))
_, _, err = cli.ImageInspectWithRaw(ctx, tag)
assert.Nil(t, err)
t.Cleanup(func() {
_, err := cli.ImageRemove(ctx, tag, types.ImageRemoveOptions{
Force: true,
PruneChildren: true,
})
if err != nil {
t.Fatal(err)
}
})
}