在Docker.DotNet中,如何通过指定Dockerfile的目录来构建映像?



我正在尝试在 C# xunit 测试中构建一个映像并启动一个容器,以便进行集成测试。我目前有下面的代码,但找不到指定 docker 文件的路径。客户端确实有Images.BuildImageFromDockerfileAsync,但这处理解压缩 TAR 文件。

using(var client = new DockerClientConfiguration(
new Uri(RuntimeInformation.IsOSPlatform(OSPlatform.Windows) 
? "npipe://./pipe/docker_engine"
: "unix:/var/run/docker.sock")).CreateClient())
{
await client
.Images
.CreateImageAsync(
new ImagesCreateParameters(),
new AuthConfig(),
new Progress<JSONMessage>());
}

我想使用 Docker.DotNet api 做相当于docker build -t yyyy -f ./zzzzzz/Dockerfile .的事情,但我找不到一种方法来做到这一点。任何帮助将不胜感激。

docker build 命令有效地创建整个工作目录的 Tar 并将其发送到构建守护程序。如此之多,以至于如果您运行docker build -它将期望来自 stdin的焦油流。

你可以做这样的事情来添加构建目录并将其传递给BuildImageFromDockerFileAsync:https://github.com/dotnet/Docker.DotNet/issues/309#issuecomment-547316442

最新更新