mirror of
https://github.com/clearlinux/docker.git
synced 2026-09-07 06:22:03 +00:00
add support for exclusion rules in dockerignore
Signed-off-by: Dave Goodchild <buddhamagnet@gmail.com>
This commit is contained in:
@@ -3427,20 +3427,29 @@ func (s *DockerSuite) TestBuildDockerignore(c *check.C) {
|
||||
RUN [[ ! -e /bla/src/_vendor ]]
|
||||
RUN [[ ! -e /bla/.gitignore ]]
|
||||
RUN [[ ! -e /bla/README.md ]]
|
||||
RUN [[ ! -e /bla/dir/foo ]]
|
||||
RUN [[ ! -e /bla/foo ]]
|
||||
RUN [[ ! -e /bla/.git ]]`
|
||||
ctx, err := fakeContext(dockerfile, map[string]string{
|
||||
"Makefile": "all:",
|
||||
".git/HEAD": "ref: foo",
|
||||
"src/x.go": "package main",
|
||||
"src/_vendor/v.go": "package main",
|
||||
"dir/foo": "",
|
||||
".gitignore": "",
|
||||
"README.md": "readme",
|
||||
".dockerignore": ".git\npkg\n.gitignore\nsrc/_vendor\n*.md",
|
||||
".dockerignore": `
|
||||
.git
|
||||
pkg
|
||||
.gitignore
|
||||
src/_vendor
|
||||
*.md
|
||||
dir`,
|
||||
})
|
||||
defer ctx.Close()
|
||||
if err != nil {
|
||||
c.Fatal(err)
|
||||
}
|
||||
defer ctx.Close()
|
||||
if _, err := buildImageFromContext(name, ctx, true); err != nil {
|
||||
c.Fatal(err)
|
||||
}
|
||||
@@ -3467,6 +3476,55 @@ func (s *DockerSuite) TestBuildDockerignoreCleanPaths(c *check.C) {
|
||||
}
|
||||
}
|
||||
|
||||
func (s *DockerSuite) TestBuildDockerignoreExceptions(c *check.C) {
|
||||
name := "testbuilddockerignoreexceptions"
|
||||
defer deleteImages(name)
|
||||
dockerfile := `
|
||||
FROM busybox
|
||||
ADD . /bla
|
||||
RUN [[ -f /bla/src/x.go ]]
|
||||
RUN [[ -f /bla/Makefile ]]
|
||||
RUN [[ ! -e /bla/src/_vendor ]]
|
||||
RUN [[ ! -e /bla/.gitignore ]]
|
||||
RUN [[ ! -e /bla/README.md ]]
|
||||
RUN [[ -e /bla/dir/dir/foo ]]
|
||||
RUN [[ ! -e /bla/dir/foo1 ]]
|
||||
RUN [[ -f /bla/dir/e ]]
|
||||
RUN [[ -f /bla/dir/e-dir/foo ]]
|
||||
RUN [[ ! -e /bla/foo ]]
|
||||
RUN [[ ! -e /bla/.git ]]`
|
||||
ctx, err := fakeContext(dockerfile, map[string]string{
|
||||
"Makefile": "all:",
|
||||
".git/HEAD": "ref: foo",
|
||||
"src/x.go": "package main",
|
||||
"src/_vendor/v.go": "package main",
|
||||
"dir/foo": "",
|
||||
"dir/foo1": "",
|
||||
"dir/dir/f1": "",
|
||||
"dir/dir/foo": "",
|
||||
"dir/e": "",
|
||||
"dir/e-dir/foo": "",
|
||||
".gitignore": "",
|
||||
"README.md": "readme",
|
||||
".dockerignore": `
|
||||
.git
|
||||
pkg
|
||||
.gitignore
|
||||
src/_vendor
|
||||
*.md
|
||||
dir
|
||||
!dir/e*
|
||||
!dir/dir/foo`,
|
||||
})
|
||||
if err != nil {
|
||||
c.Fatal(err)
|
||||
}
|
||||
defer ctx.Close()
|
||||
if _, err := buildImageFromContext(name, ctx, true); err != nil {
|
||||
c.Fatal(err)
|
||||
}
|
||||
}
|
||||
|
||||
func (s *DockerSuite) TestBuildDockerignoringDockerfile(c *check.C) {
|
||||
name := "testbuilddockerignoredockerfile"
|
||||
dockerfile := `
|
||||
@@ -3607,6 +3665,7 @@ func (s *DockerSuite) TestBuildDockerignoringWholeDir(c *check.C) {
|
||||
ctx, err := fakeContext(dockerfile, map[string]string{
|
||||
"Dockerfile": "FROM scratch",
|
||||
"Makefile": "all:",
|
||||
".gitignore": "",
|
||||
".dockerignore": ".*\n",
|
||||
})
|
||||
defer ctx.Close()
|
||||
|
||||
Reference in New Issue
Block a user