diff --git a/src/Testcontainers/Builders/ImageFromDockerfileBuilder.cs b/src/Testcontainers/Builders/ImageFromDockerfileBuilder.cs index 4ec2387c6..cafcef128 100644 --- a/src/Testcontainers/Builders/ImageFromDockerfileBuilder.cs +++ b/src/Testcontainers/Builders/ImageFromDockerfileBuilder.cs @@ -3,6 +3,7 @@ namespace DotNet.Testcontainers.Builders using System; using System.Collections.Generic; using System.IO; + using System.Text.RegularExpressions; using Docker.DotNet.Models; using DotNet.Testcontainers.Configurations; using DotNet.Testcontainers.Images; @@ -65,7 +66,8 @@ public ImageFromDockerfileBuilder WithName(IImage name) /// public ImageFromDockerfileBuilder WithDockerfile(string dockerfile) { - return Merge(DockerResourceConfiguration, new ImageFromDockerfileConfiguration(dockerfile: dockerfile)); + var dockerfileFilePath = Regex.Replace(dockerfile, "^\\.(\\/|\\\\)", string.Empty, RegexOptions.None, TimeSpan.FromSeconds(1)); + return Merge(DockerResourceConfiguration, new ImageFromDockerfileConfiguration(dockerfile: dockerfileFilePath)); } /// diff --git a/tests/Testcontainers.Tests/Unit/Images/ImageFromDockerfileTest.cs b/tests/Testcontainers.Tests/Unit/Images/ImageFromDockerfileTest.cs index 116b4d323..a590d83f6 100644 --- a/tests/Testcontainers.Tests/Unit/Images/ImageFromDockerfileTest.cs +++ b/tests/Testcontainers.Tests/Unit/Images/ImageFromDockerfileTest.cs @@ -100,8 +100,11 @@ public async Task ThrowsDockerfileDirectoryDoesNotExist() Assert.Equal($"Directory '{Path.GetFullPath(dockerfileDirectory)}' does not exist.", exception.Message); } - [Fact] - public async Task BuildsDockerImage() + [Theory] + [InlineData("Dockerfile")] + [InlineData("./Dockerfile")] + [InlineData(".\\Dockerfile")] + public async Task BuildsDockerImage(string dockerfile) { // Given IImage tag1 = new DockerImage("localhost/testcontainers", Guid.NewGuid().ToString("D"), string.Empty); @@ -110,7 +113,7 @@ public async Task BuildsDockerImage() var imageFromDockerfileBuilder = new ImageFromDockerfileBuilder() .WithName(tag1) - .WithDockerfile("Dockerfile") + .WithDockerfile(dockerfile) .WithDockerfileDirectory("Assets/") .WithDeleteIfExists(true) .WithCreateParameterModifier(parameterModifier => parameterModifier.Tags.Add(tag2.FullName))