c# - 在Dockerfile中仅读取第一行

标签 c# unix docker

我正在尝试使用Docker.DotNet(Docker Rest Api的C#包装器)在远程linux vm上构建镜像,但是仅读取了Dockerfile的第一行:

FROM ubuntu:14.04
RUN apt-get update && apt-get install -y php5-cli

因此,仅创建了基本的Ubuntu镜像,而未安装php。我已经将Dockerfile中的文件结尾转换为\ n(Unix)而不是\ r \ n(Windows),但这没有任何效果。根据我的api调用,图像存储库名称也未设置。

奇怪的是,如果我在Dockerfile中仅包含一行:
FROM ubuntu:14.04

然后设置了图像存储库名称,因此看起来第二行中的内容引起了问题。

这是在Docker.DotNet中调用BuildImageFromDockerfileAsync的方法:
static async Task BuildImageFromDockerfile(DockerClient client)
    {
        var parameters = new BuildImageFromDockerfileParameters
        {
            RepositoryTagName = "test-image-python",
            RemoveIntermediateContainers = false
        };

        using (var fileStream = new FileStream(@"C:\Users\Dan\Desktop\DockerProjects\helloworld-py.tar", FileMode.Open))
        {
            await client.Miscellaneous.BuildImageFromDockerfileAsync(fileStream, parameters, new CancellationToken());
        }
    }

任何帮助,将不胜感激。

最佳答案

连接被关闭是问题所在,因此这似乎是Docker.DotNet的问题。希望在接下来的几周内,我将有机会创建一个拉取请求并进行修复,除了BuildFromDockerfile之外,我发现该库非常有用。目前,我只是用C#来使api自己调用。 – Dan O'Leary

关于c# - 在Dockerfile中仅读取第一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34023184/

相关文章:

c - dup 系统调用说明

javascript - 在 JavaScript 中将 Unix 时间转换为 "minutes ago"

c# - 防止多次调用 Web 服务

linux - 通过lftp从远程服务器复制文件

c# - 使用 XPath 选择带有通配符的属性

scala - OCI错误 “/opt/docker/bin/my_job”:使用sbt docker:publishLocal没有此类文件或目录

docker - 我们可以在 docker swarm 中创建一个节点组吗?

docker - 如何更新在 Amazon ECS 上运行的 docker 容器

c# - 是否有用于编写快速 C# 代码片段的交互式 shell?

c# - 异步调用中 .Result 有什么意义?