Skip to content

Commit dc31914

Browse files
committed
Use dockerignore with the same name as the dockerfile if it exists
1 parent 99559ab commit dc31914

File tree

1 file changed

+13
-9
lines changed

1 file changed

+13
-9
lines changed

src/Testcontainers/Images/DockerIgnoreFile.cs

+13-9
Original file line numberDiff line numberDiff line change
@@ -15,33 +15,37 @@ internal sealed class DockerIgnoreFile : IgnoreFile
1515
/// Initializes a new instance of the <see cref="DockerIgnoreFile" /> class.
1616
/// </summary>
1717
/// <param name="dockerignoreFileDirectory">Directory that contains all docker configuration files.</param>
18-
/// <param name="dockerignoreFile">.dockerignore file name.</param>
18+
/// <param name="dockerignoreFileExtension">.dockerignore file extension.</param>
1919
/// <param name="dockerfileFile">Dockerfile file name.</param>
2020
/// <param name="logger">The logger.</param>
21-
public DockerIgnoreFile(string dockerignoreFileDirectory, string dockerignoreFile, string dockerfileFile, ILogger logger)
22-
: this(new DirectoryInfo(dockerignoreFileDirectory), dockerignoreFile, dockerfileFile, logger)
21+
public DockerIgnoreFile(string dockerignoreFileDirectory, string dockerignoreFileExtension, string dockerfileFile, ILogger logger)
22+
: this(new DirectoryInfo(dockerignoreFileDirectory), dockerignoreFileExtension, dockerfileFile, logger)
2323
{
2424
}
2525

2626
/// <summary>
2727
/// Initializes a new instance of the <see cref="DockerIgnoreFile" /> class.
2828
/// </summary>
2929
/// <param name="dockerignoreFileDirectory">Directory that contains all docker configuration files.</param>
30-
/// <param name="dockerignoreFile">.dockerignore file name.</param>
30+
/// <param name="dockerignoreFileExtension">.dockerignore file extension.</param>
3131
/// <param name="dockerfileFile">Dockerfile file name.</param>
3232
/// <param name="logger">The logger.</param>
33-
public DockerIgnoreFile(FileSystemInfo dockerignoreFileDirectory, string dockerignoreFile, string dockerfileFile, ILogger logger)
34-
: base(GetPatterns(dockerignoreFileDirectory, dockerignoreFile, dockerfileFile), logger)
33+
public DockerIgnoreFile(FileSystemInfo dockerignoreFileDirectory, string dockerignoreFileExtension, string dockerfileFile, ILogger logger)
34+
: base(GetPatterns(dockerignoreFileDirectory, dockerignoreFileExtension, dockerfileFile), logger)
3535
{
3636
}
3737

38-
private static IEnumerable<string> GetPatterns(FileSystemInfo dockerignoreFileDirectory, string dockerignoreFile, string dockerfileFile)
38+
private static IEnumerable<string> GetPatterns(FileSystemInfo dockerignoreFileDirectory, string dockerignoreFileExtension, string dockerfileFile)
3939
{
40-
var dockerignoreFilePath = Path.Combine(dockerignoreFileDirectory.FullName, dockerignoreFile);
40+
var customDockerIgnoreFilePath = Path.Combine(dockerignoreFileDirectory.FullName, dockerfileFile + dockerignoreFileExtension);
41+
42+
var dockerignoreFilePath = File.Exists(customDockerIgnoreFilePath)
43+
? customDockerIgnoreFilePath
44+
: Path.Combine(dockerignoreFileDirectory.FullName, dockerignoreFileExtension);
4145

4246
// These files are necessary and sent to the Docker daemon. The ADD and COPY instructions do not copy them to the image:
4347
// https://docs.docker.com/engine/reference/builder/#dockerignore-file.
44-
var negateNecessaryFiles = new[] { dockerignoreFile, dockerfileFile }
48+
var negateNecessaryFiles = new[] { dockerignoreFileExtension, dockerfileFile }
4549
.Select(file => "!" + file);
4650

4751
var dockerignorePatterns = File.Exists(dockerignoreFilePath)

0 commit comments

Comments
 (0)