Skip to content

Commit 37e5351

Browse files
authored
fix: Do not pre-pull scratch image (#1304)
1 parent f2397a7 commit 37e5351

File tree

4 files changed

+30
-1
lines changed

4 files changed

+30
-1
lines changed

src/Testcontainers/Clients/TestcontainersClient.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -383,6 +383,12 @@ private async Task PullImageAsync(IImage image, CancellationToken ct = default)
383383

384384
if (dockerRegistryServerAddress == null)
385385
{
386+
// https://hub.docker.com/_/scratch.
387+
if ("scratch".Equals(image.Repository, StringComparison.OrdinalIgnoreCase))
388+
{
389+
return;
390+
}
391+
386392
var info = await System.GetInfoAsync(ct)
387393
.ConfigureAwait(false);
388394

tests/Testcontainers.Tests/Assets/.dockerignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,5 @@ credHelpers
33
credsStore
44
healthWaitStrategy
55
pullBaseImages
6+
scratch
67
**/*.md
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
FROM scratch
2+
LABEL "maintainer"="[email protected]"

tests/Testcontainers.Tests/Unit/Images/ImageFromDockerfileTest.cs

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -100,11 +100,31 @@ public async Task ThrowsDockerfileDirectoryDoesNotExist()
100100
Assert.Equal($"Directory '{Path.GetFullPath(dockerfileDirectory)}' does not exist.", exception.Message);
101101
}
102102

103+
[Fact]
104+
public async Task BuildsDockerScratchImage()
105+
{
106+
// Given
107+
var imageFromDockerfileBuilder = new ImageFromDockerfileBuilder()
108+
.WithDockerfileDirectory("Assets/scratch")
109+
.Build();
110+
111+
// When
112+
var exception = await Record.ExceptionAsync(() => imageFromDockerfileBuilder.CreateAsync())
113+
.ConfigureAwait(true);
114+
115+
// Then
116+
Assert.Null(exception);
117+
Assert.NotNull(imageFromDockerfileBuilder.Repository);
118+
Assert.NotNull(imageFromDockerfileBuilder.Tag);
119+
Assert.NotNull(imageFromDockerfileBuilder.FullName);
120+
Assert.Null(imageFromDockerfileBuilder.GetHostname());
121+
}
122+
103123
[Theory]
104124
[InlineData("Dockerfile")]
105125
[InlineData("./Dockerfile")]
106126
[InlineData(".\\Dockerfile")]
107-
public async Task BuildsDockerImage(string dockerfile)
127+
public async Task BuildsDockerAlpineImage(string dockerfile)
108128
{
109129
// Given
110130
IImage tag1 = new DockerImage(new DockerImage(string.Join("/", "localhost", "testcontainers", Guid.NewGuid().ToString("D"))));

0 commit comments

Comments
 (0)