簡體   English   中英

docker build 掛在包含許多文件的目錄中

[英]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 示例中所示。

Docker 的文檔

在大多數情況下,最好從一個空目錄作為上下文開始,並將 Dockerfile 保存在該目錄中。 僅添加構建 Dockerfile 所需的文件。

警告:不要使用根目錄 / 作為 PATH,因為它會導致構建將硬盤驅動器的全部內容傳輸到 Docker 守護程序。

我已經看到簡單的 docker 示例將 dockerfile 放在根目錄中,但對於我上面發布的復雜示例,dockerfile 僅放在其相關目錄中。 您可以瀏覽dockersamples存儲庫並找到您的案例。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM