【问题标题】:In Docker.DotNet how do you build an image by specifying the directory of the Dockerfile?在 Docker.DotNet 中,如何通过指定 Dockerfile 的目录来构建镜像?
【发布时间】:2020-05-17 18:01:37
【问题描述】:

出于集成测试的目的,我正在尝试在 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 . 的操作,但我想不出办法。任何帮助将不胜感激。

【问题讨论】:

    标签: c# docker .net-core


    【解决方案1】:

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

    您可以这样做来压缩构建目录并将其传递给BuildImageFromDockerFileAsynchttps://github.com/dotnet/Docker.DotNet/issues/309#issuecomment-547316442

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-01-06
    • 2023-03-04
    • 1970-01-01
    • 1970-01-01
    • 2020-06-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多