1
基本上我有一堆來自Gradle構建的第三方jar文件,它們被複制到external
目錄中。
那些罐子幾乎不會改變,但Docker不知何故不想緩存該圖層。Docker - 如何緩存添加的目錄?
我泊塢文件相當簡單:
RUN mkdir -p /opt/app
WORKDIR /opt/app
COPY app.jar .
COPY project /opt/app/project
COPY external /opt/app/external
EXPOSE 2550 7000
所有jar
文件和大小在external
目錄的md5sum
是相同的。 stat
只顯示inode
在這些文件上有所不同(當然期待文件時間,但根據docker文檔,mtime在比較時會被忽略)。
然而,如果我看搬運工歷史,我看到,該層沒有被緩存:
標籤:測試1
1be1e9a7084b 17 hours ago /bin/sh -C#(nop) EXPOSE 2550/tcp 7000/tcp 0B
e593cf804634 17 hours ago /bin/sh -C#(nop) COPY dir:b2ed14f41affcee... 60.4MB
a55be55e6e68 17 hours ago /bin/sh -C#(nop) COPY dir:f1abbe11a6a64fe... 566kB
e8823ec84dfb 17 hours ago /bin/sh -C#(nop) COPY file:ba5ef09e42eda4... 523kB
041f6f6957b5 17 hours ago /bin/sh -C#(nop) WORKDIR /opt/app 0B
15e4c78e545c 17 hours ago /bin/sh -c mkdir -p /opt/app 0B
標籤:測試2
aacb13926d18 17 hours ago /bin/sh -C#(nop) EXPOSE 2550/tcp 7000/tcp 0B
7ebe12849fad 17 hours ago /bin/sh -C#(nop) COPY dir:b2ed14f41affcee... 60.4MB
4bf898283d11 17 hours ago /bin/sh -C#(nop) COPY dir:f1abbe11a6a64fe... 566kB
886630b2a05a 17 hours ago /bin/sh -C#(nop) COPY file:5ad60a31d9e72d... 523kB
041f6f6957b5 17 hours ago /bin/sh -C#(nop) WORKDIR /opt/app 0B
15e4c78e545c 17 hours ago /bin/sh -c mkdir -p /opt/app 0B
所以我該如何強制docker重複使用那些幾乎不會改變的第三方瓶子的圖層? 是否因爲每次構建後都重新創建外部目錄?有沒有其他方法?
恩,我現在感覺很蠢,謝謝! – gerasalus