2016-02-26 67 views

回答

0

您是否嘗試過使用「--no-cache」選項運行構建?

我也建議你閱讀以下內容:

https://ryanfb.github.io/etc/2015/07/29/git_strategies_for_docker.html

最後,你真的需要您的構建中運行git?就我個人而言,我使用Jenkins在一個工作空間內運行我的構建,該工作空間是從git單獨檢出的。

+0

我得到了同樣的錯誤! 'ImportError:沒有名爲multifile的模塊,但我知道'multifile'模塊存在於分支中! –

0

Docker的重點在於它只重建已經改變的圖像部分。它無法知道repo中的內容已更改,它只知道已在Dockerfile中爲此步驟存儲了緩存圖像「切片」。所以它使用它以前建立的圖像。

正如Mark指出的那樣,您可以使用--no-cache強制進行再生。另一個選擇是擁有一個始終使用--no-cache構建的源代碼容器,您可以將其添加到卷中,然後通過不同容器中的這些卷使用該代碼(請參閱docker-compose的'volume')。然後你總是會得到回購的變化,因爲它是從頭開始構建的。您可能想要查看「docker-compose」進行這類工作。

當你運行docker build仔細看看輸出。當它有一個步驟的緩存版本時,它會說很多。當它必須建立它時,它也會注意到這一點。