docker build在许多文件的目录中挂起

时间:2016-11-06 03:59:51

标签: windows docker

Windows 10.我在文件夹中只有:

app (directory with many files)
Dockerfile (simpliest docker file)

我运行“docker build”。它只是挂起。 如果我删除“app”目录。构建运行正常。 在docker文件中只有一行:

FROM node

没有发现任何类似的问题。它会像尝试扫描目录一样填充。

有什么建议吗?

UPD:我似乎应该使用.dockerignore https://docs.docker.com/engine/reference/builder/#/dockerignore-file

2 个答案:

答案 0 :(得分:5)

当您运行 Public Class Form1 Dim R As IO.StreamReader Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click ListBox1.Items.Clear() Me.FolderBrowserDialog1.ShowDialog() Listfiles(Me.FolderBrowserDialog1.SelectedPath) End Sub Public Sub Listfiles(ByVal Pad As String) Dim DirInfo As New IO.DirectoryInfo(Pad) Dim FileObject As IO.FileSystemInfo Dim strBESTAND As String For Each FileObject In DirInfo.GetFileSystemInfos 'if FileObject is a folder If FileObject.Attributes = IO.FileAttributes.Directory Then ' Listfiles(FileObject.FullName) Me.ListBox1.Items.Add(FileObject.FullName) Else strBESTAND = (FileObject.FullName) Dim information = My.Computer.FileSystem.GetFileInfo(strBESTAND) ' If extention matches .......... Dim strEXTENTIE As String 'if extentie is tikt in checkedlistbox For i As Integer = 0 To (CheckedListBoxEXTENTIES.CheckedItems.Count - 1) ' iterate on checked items 'only us ticked items strEXTENTIE = ((CheckedListBoxEXTENTIES.GetItemText(CheckedListBoxEXTENTIES.CheckedItems(i)).ToString)) If information.Extension = "." & strEXTENTIE Then strBESTAND = information.Name Me.ListBox1.Items.Add(FileObject.Name) End If Next End If Next MessageBox.Show("Done!") End Sub 时,Docker客户端会通过REST将上下文(目录的递归内容)发送到Docker守护程序进行构建。如果上下文很大,这可能需要一些时间(取决于各种因素,如果你的守护进程是本地/远程,平台可能等等)。

在放弃之前你有多长时间挂起?可能它还在工作吗?或者可能是上下文所以大可能客户端/守护进程遇到了问题。检查(客户端/守护程序)日志将有助于调试。

是的,docker build ...文件(基本上是.dockerignore但对于Docker 上下文)可能是您正在寻找的内容,除非您需要构建期间.gitignore目录的内容。

答案 1 :(得分:0)

您的Dockerfile应该放在仅包含其构建上下文的目录中。例如,如果您要构建一个春季启动应用程序,则可以将Dockerfile放在/ app下,如this官方docker示例中所示。

Docker's documentation

在大多数情况下,最好以空目录作为上下文,并将Dockerfile保留在该目录中。仅添加构建Dockerfile所需的文件。

警告:请勿将您的根目录/用作PATH,因为它会导致构建将硬盘驱动器的全部内容传输到Docker守护程序。

我已经看到简单的docker示例将dockerfile放置在根目录中,但是对于像我上面发布的示例这样的复杂示例,则dockerfile仅放置在其相关目录中。您可以浏览dockersamples存储库并找到您的案子。