使用 TestContainers .NET C# 从 ImageFromDockerfileBuilder 创建容器

问题描述 投票:0回答:1

我正在尝试为我的 .NET 应用程序使用 TestContainers 包。我有一个为构建应用程序所需的映像而编写的 Dockerfile。我按照文档上的说明进行操作:

    var image = new ImageFromDockerfileBuilder()
        .WithDockerfileDirectory(CommonDirectoryPath.GetSolutionDirectory(), string.Empty)
        .WithDockerfile("Dockerfile")
        .Build();

    await image.CreateAsync().ConfigureAwait(false);

但是,我不确定如何使用这个新构建的映像创建和运行容器。 CreateAsync() 调用不返回值,并且

image
表示这是一个
IFutureDockerImage
。在 CreateAsync() 调用完成后,我确实看到在 Docker Desktop 中本地创建了一个新映像。

c# e2e-testing testcontainers
1个回答
0
投票

WithImage()
上的
ContainerBuilder
方法接受从调用
IFutureDockerImage
返回的
ImageFromDockerfileBuilder.Build()
类型。

public static async Task<IContainer> CreateAndStartDatabaseContainer()
{
    var image = new ImageFromDockerfileBuilder()
        .WithDockerfileDirectory(CommonDirectoryPath.GetSolutionDirectory(), string.Empty)
        .WithDockerfile("Dockerfile")
        .Build();

    await image.CreateAsync().ConfigureAwait(false);

    var container = new ContainerBuilder()
        .WithImage(image)
        .WithPortBinding(9153, 3306)
        .WithEnvironment("stage", "e2e")
        .Build();

    await container.StartAsync().ConfigureAwait(false);
    return container;
}
© www.soinside.com 2019 - 2024. All rights reserved.