我們正在嘗試爲python應用程序創建一個Docker容器。 Dockerfile使用「pip install」來安裝依賴項。該Dockerfile看起來像Docker重新編譯時間
FROM ubuntu:latest
RUN apt-get update -y
RUN apt-get install -y git wget python3-pip
RUN mkdir /app
COPY . /app
RUN pip3 install asn1crypto
RUN pip3 install cffi==1.10.0
RUN pip3 install click==6.7
RUN pip3 install conda==4.3.16
RUN pip3 install Flask==0.12.2
RUN pip3 install Flask-SSLify==0.1.5
RUN pip3 install Flask-SSLify==0.1.5
RUN pip3 install flask-restful==0.3.6
WORKDIR /app
ENTRYPOINT ["python3"]
CMD [ "X.py", "/app/Y.yml" ]
碼頭成功創建問題是在重建時間。
- 如果沒有在dockerfile改變上述
- 如果一行是在其中點子安裝搬運工守護進程仍然之後dockerfile改變運行所有的點子安裝命令,下載所有的包雖然不是安裝它們。
有沒有一種方法來優化重建?
THX
如果由'COPY'命令複製一個文件碰巧它會創建一個新層,用新的散列和緩存不能再使用。嘗試移動「pip」調用下的「COPY」。 –
我還建議閱讀[碼頭最佳實踐](https://docs.docker.com/engine/userguide/eng-image/dockerfile_best-practices/) - 碼頭文件還有其他一些問題,如書面 –