2016-09-11 79 views
0

我正在嘗試爲我的應用程序構建一個圖像,FROM ruby:2.2.1,我的應用程序文件夾總計大約壓縮了200 MB。運行軟件包安裝時Docker空間不足

運行時我收到"Your disk is full"bundle install。創建壓縮上下文也需要太多時間。然而在/var/上運行df會顯示超過1TB的可用空間,但這並不妨礙我。

我的問題是,我可以忽略所有使用.dockerignore中的*,然後使用docker-compose將我的根項目文件夾添加爲卷?這聽起來像個好主意嗎?

我也想:

  • 移動Dockerfile到子文件夾(但我覺得我不能夠在父文件夾添加爲音量使用泊塢窗組成
  • 做一個git的clone Dockerfile,但因爲我已經在我的電腦上有這些文件,這聽起來像一個愚蠢的步驟。
  • 我應該只是想知道如何添加更多的磁盤空間到碼頭集裝箱嗎?但我仍然不喜歡它需要的時間創建背景。
+0

如果我忽略'.dockerignore'上的文件,我可以在'Dockerfile'文件中使用'COPY'嗎? –

+0

您正在使用哪個操作系統。 –

+0

mac os,我有3TB的可用空間,所以我知道不適用於空間:P –

回答

0

請注意,您的問題與您的標題或您的文章的前半部分不符,我會回答您提出的問題。

我的問題是,我可以忽略所有在* .dockerignore中使用*,然後使用docker-compose將我的根項目文件夾添加爲卷?這聽起來像個好主意嗎?

您可以在docker-compose中添加項目的卷,但會損失很多可移植性(如果其他人試圖在沒有卷數據的情況下嘗試使用它,圖像將不完整)。你也失去了執行任何編譯步驟的能力,並且可能會增加你的容器啓動時間,因爲它引入了依賴關係。最後,如果您的內部版本空間不足,很可能會在運行時耗盡空間,除非您的卷數據是容器大小的重要部分。

如果我忽略.dockerignore上的文件,我可以在Dockerfile的該文件上使用COPY嗎?

不,您不能在通過.dockerignore推送到docker守護程序時排除的任何文件上使用COPY或ADD。

相關問題