[英]docker build hangs in directory with many files
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
當您運行docker build ...
Docker 客戶端通過 REST 將上下文(目錄的遞歸內容)發送到 Docker 守護程序以進行構建。 如果該上下文很大,這可能需要一些時間(取決於各種因素,如果您的守護進程是本地/遠程的,可能是平台等...)。
在放棄之前,你給它掛了多久? 可能它仍然在工作嗎? 或者可能是因為背景是如此之大,也許是客戶端/守護程序時遇到了問題。 檢查(客戶端/守護程序)日志將有助於調試。
是的,一個.dockerignore
文件(基本上是一個.gitignore
但對於 Docker上下文)可能就是你正在尋找的,除非你在構建過程中需要app
目錄的內容。
你的 Dockerfile 應該放在只包含它的構建上下文的目錄中。 例如,如果您正在構建一個 spring-boot 應用程序,您可以將 Dockerfile 放在 /app 下,如這個官方 docker 示例中所示。
在大多數情況下,最好從一個空目錄作為上下文開始,並將 Dockerfile 保存在該目錄中。 僅添加構建 Dockerfile 所需的文件。
警告:不要使用根目錄 / 作為 PATH,因為它會導致構建將硬盤驅動器的全部內容傳輸到 Docker 守護程序。
我已經看到簡單的 docker 示例將 dockerfile 放在根目錄中,但對於我上面發布的復雜示例,dockerfile 僅放在其相關目錄中。 您可以瀏覽dockersamples存儲庫並找到您的案例。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.