我正在尝试为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,并将其发送到build守护程序。如此之多,以至于如果您运行docker build -
,它将期望来自stdin的tar流。
您可以执行以下操作来压缩构建目录并将其传递给BuildImageFromDockerFileAsync
:https://github.com/dotnet/Docker.DotNet/issues/309#issuecomment-547316442
关于c# - 在Docker.DotNet中,如何通过指定Dockerfile的目录来构建镜像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61856360/