|
@@ -6791,3 +6791,41 @@ foo2
|
|
|
c.Fatal(err)
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+// Test case for #23221
|
|
|
+func (s *DockerSuite) TestBuildWithUTF8BOM(c *check.C) {
|
|
|
+ name := "test-with-utf8-bom"
|
|
|
+ dockerfile := []byte(`FROM busybox`)
|
|
|
+ bomDockerfile := append([]byte{0xEF, 0xBB, 0xBF}, dockerfile...)
|
|
|
+ ctx, err := fakeContextFromNewTempDir()
|
|
|
+ c.Assert(err, check.IsNil)
|
|
|
+ defer ctx.Close()
|
|
|
+ err = ctx.addFile("Dockerfile", bomDockerfile)
|
|
|
+ c.Assert(err, check.IsNil)
|
|
|
+ _, err = buildImageFromContext(name, ctx, true)
|
|
|
+ c.Assert(err, check.IsNil)
|
|
|
+}
|
|
|
+
|
|
|
+// Test case for UTF-8 BOM in .dockerignore, related to #23221
|
|
|
+func (s *DockerSuite) TestBuildWithUTF8BOMDockerignore(c *check.C) {
|
|
|
+ name := "test-with-utf8-bom-dockerignore"
|
|
|
+ dockerfile := `
|
|
|
+ FROM busybox
|
|
|
+ ADD . /tmp/
|
|
|
+ RUN ls -la /tmp
|
|
|
+ RUN sh -c "! ls /tmp/Dockerfile"
|
|
|
+ RUN ls /tmp/.dockerignore`
|
|
|
+ dockerignore := []byte("./Dockerfile\n")
|
|
|
+ bomDockerignore := append([]byte{0xEF, 0xBB, 0xBF}, dockerignore...)
|
|
|
+ ctx, err := fakeContext(dockerfile, map[string]string{
|
|
|
+ "Dockerfile": dockerfile,
|
|
|
+ })
|
|
|
+ c.Assert(err, check.IsNil)
|
|
|
+ defer ctx.Close()
|
|
|
+ err = ctx.addFile(".dockerignore", bomDockerignore)
|
|
|
+ c.Assert(err, check.IsNil)
|
|
|
+ _, err = buildImageFromContext(name, ctx, true)
|
|
|
+ if err != nil {
|
|
|
+ c.Fatal(err)
|
|
|
+ }
|
|
|
+}
|