我正在尝试使用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());
}
}
任何帮助将不胜感激。
答案 0 :(得分:1)
正在关闭的连接是问题,所以这看起来是Docker.DotNet的问题。希望我有机会在未来几周内创建一个拉取请求并修复它,因为除了BuildFromDockerfile之外,我发现该库非常有用。暂时,我只是在c#中自己打电话给api。 - Dan O' Leary