diff --git a/CHANGELOG.md b/CHANGELOG.md index b64b68b5e..03a6aadf3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -22,6 +22,7 @@ - 594 Add `IDockerContainer.GetLogs` - 601 Add `ITestcontainersBuilder.WithImagePullPolicy` (@BenasB) - 616 Add `ITestcontainersBuilder.WithMacAddress` (@seb1992) +- 618 Match `.dockerignore` entry `*` to all files and directories ### Changed diff --git a/src/Testcontainers/Images/IgnoreFile.cs b/src/Testcontainers/Images/IgnoreFile.cs index 732fc8d8f..05034fc9d 100644 --- a/src/Testcontainers/Images/IgnoreFile.cs +++ b/src/Testcontainers/Images/IgnoreFile.cs @@ -42,6 +42,9 @@ public IgnoreFile(IEnumerable patterns, ILogger logger) return line.EndsWith(filesAndDirectories, StringComparison.InvariantCulture) ? line.Substring(0, line.Length - filesAndDirectories.Length) : line; }) + // Exclude all files and directories (https://github.com/testcontainers/testcontainers-dotnet/issues/618). + .Select(line => "*".Equals(line, StringComparison.OrdinalIgnoreCase) ? "**" : line) + // Remove empty line. .Where(line => !string.IsNullOrEmpty(line)) diff --git a/tests/Testcontainers.Tests/Fixtures/Images/IgnoreFileFixture.cs b/tests/Testcontainers.Tests/Fixtures/Images/IgnoreFileFixture.cs index ce2e5b6e1..38ac26d34 100644 --- a/tests/Testcontainers.Tests/Fixtures/Images/IgnoreFileFixture.cs +++ b/tests/Testcontainers.Tests/Fixtures/Images/IgnoreFileFixture.cs @@ -10,14 +10,18 @@ public IgnoreFileFixture() { var logger = TestcontainersSettings.Logger; var ignoreFilesAndDirectories = new IgnoreFile(new[] { "bin/", "obj/*" }, logger); + var ignoreAllFilesAndDirectories = new IgnoreFile(new[] { "*", "!README*.md" }, logger); var ignoreNonRecursiveFiles = new IgnoreFile(new[] { "*/temp*" }, logger); var ignoreNonRecursiveNestedFiles = new IgnoreFile(new[] { "*/*/temp*" }, logger); var ignoreRecursiveFiles = new IgnoreFile(new[] { "**/*.txt" }, logger); var ignoreSingleCharacterFiles = new IgnoreFile(new[] { "temp?" }, logger); var ignoreExceptionFiles = new IgnoreFile(new[] { "*.md", "!README*.md", "README-secret.md" }, logger); - this.Add(ignoreFilesAndDirectories, "bin/Debug/net6.0", false); - this.Add(ignoreFilesAndDirectories, "obj/Debug/net6.0", false); - this.Add(ignoreFilesAndDirectories, "Testcontainers.sln", true); + this.Add(ignoreFilesAndDirectories, "bin/Debug", false); + this.Add(ignoreFilesAndDirectories, "obj/Debug", false); + this.Add(ignoreFilesAndDirectories, "README.md", true); + this.Add(ignoreAllFilesAndDirectories, "bin/Debug", false); + this.Add(ignoreAllFilesAndDirectories, "obj/Debug", false); + this.Add(ignoreAllFilesAndDirectories, "README.md", true); this.Add(ignoreNonRecursiveFiles, "lipsum/temp", false); this.Add(ignoreNonRecursiveFiles, "lipsum/temp.txt", false); this.Add(ignoreNonRecursiveFiles, "lipsum/lorem/temp", true);