gpt4 book ai didi

python - Docker重建时间

转载 作者:行者123 更新时间:2023-12-02 21:21:02 26 4
gpt4 key购买 nike

我们正在尝试为python应用程序创建Docker容器。 Dockerfile使用“pip install”安装依赖项。 Dockerfile看起来像

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" ]

成功创建docker的问题在于重建时间。
  • 如果
  • 上方的dockerfile中没有任何更改
  • 如果在pip安装后更改了dockerfile中的一行,则docker守护进程仍会运行pip install中的所有命令,尽管未安装它们,但会下载所有软件包。

  • 有没有一种方法可以优化重建?

    谢谢

    最佳答案

    以下是我想暂时使用Dockerfile进行优化的内容-

    FROM ubuntu:latest
    RUN apt-get update -y && apt-get install -y \
    git \
    wget \
    python3-pip \
    && rm -rf /var/lib/apt/lists/*
    WORKDIR /app
    COPY ./requirements.txt .
    RUN pip3 install -r requirements.txt
    COPY . /app
    ENTRYPOINT ["python3"]
    CMD [ "X.py", "/app/Y.yml" ]
  • 通过将多个命令特别是在相互依赖时集成到单个命令中来减少层次。这有助于减小图像尺寸。
  • 始终尝试在最后使用COPY,因为常规源代码更改可能会使下一层缓存无效。
  • 使用单个Requirements.txt文件通过pip进行安装。如果要安装许多软件包,还请定义单独的步骤,不要让正常的源代码更改在每个版本上都强制安装软件包。
  • 始终清除最终图像中不需要的中间内容。

  • Ref https://docs.docker.com/engine/userguide/eng-image/dockerfile_best-practices/

    关于python - Docker重建时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45626445/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com