我正在尝试为我的 .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 中本地创建了一个新映像。
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;
}