我正在使用以下Dockerfile.
FROM ubuntu
RUN apt-get update
RUN apt-get install -y \
python3.9 \
python3-pip
COPY . /app
WORKDIR /app
RUN pip install -r requirements.txt
EXPOSE 8501
ENTRYPOINT [ "streamlit", "run" ]
CMD ["app.py"]
每當我重建影像時,泊塢窗都會使用先前快取的影像版本并快速構建它,除非它到達RUN pip install -r requirements.txt部分,每次我重建影像時它都會運行(不快取)。問題是 is 中的需求之一requirements.txt,streamlit==1.9.0它有大量的依賴關系,所以它減慢了重建程序。長話短說,docker 正在快取RUN apt-get install foo,但不是RUN pip install bar,我猜,這是意料之中的。當檔案中的串列很長時,您將如何找到解決方法以加快映像重建程序requirements.txt?
uj5u.com熱心網友回復:
它無法快取它,因為您在應用程式中的檔案不斷變化(我猜)。它通常的做法是先單獨復制 requirements.txt,然后安裝,然后復制其他所有內容。這樣,docker 可以快取安裝,因為 requirements.txt 沒有改變。
FROM ubuntu
RUN apt-get update
RUN apt-get install -y \
python3.9 \
python3-pip
WORKDIR /app
COPY requirements.txt . # Copy ONLY requirements. This layer is cached if this file doesn't change
RUN pip install -r requirements.txt # This uses the cached layer if the previous layer was cached aswell
COPY . .
EXPOSE 8501
ENTRYPOINT [ "streamlit", "run" ]
CMD ["app.py"]
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/480089.html
上一篇:Unity:cvc-complex-type.2.4.a:發現以元素“base-extension”開頭的無效內容。應為“{layoutlib}”之一
