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