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

标签 c# docker .net-core

我正在尝试为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/

相关文章:

linux - google-chrome 无法移动到新的命名空间

c# - 注册 c# .net core 控制台应用程序以在 macOS 上的系统启动时启动

c# - 我可以通过加法来增加 c# 字符的值吗?

c# - XML 序列化如何知道将属性放在哪里?

c# - Entity Framework 对象比较

docker - 在 Kubernetes 设置期间保持我的服务器 O/S 的静态 IP 地址

C# 泛型 - 为什么需要从具体类型显式转换回 T?

c# - web api 无法在 azure 上的 Linux 容器中使用 Net Core 3 Web api 启动

c# - System.Diagnostics.Activity 在 aspnet core 2.1 中为空

selenium - 如何使用官方的 selenium docker 镜像?