gpt4 book ai didi

docker - 有没有一种方法可以在App Engine中一次安装软件包,以避免每次长时间部署?

转载 作者:行者123 更新时间:2023-12-02 18:14:29 24 4
gpt4 key购买 nike

我需要有ghostscript和ImageMagick才能进行一些PDF编辑和OCR。我已经指出我使用了Dockerfile,但是gcloud app deploy似乎每次都会从头开始。是否可以通过一次安装软件包来加快速度?

这是我的Dockerfile:

ROM gcr.io/google-appengine/python
LABEL python_version=python3.6
RUN virtualenv --no-download /env -p python3.6

# Set virtualenv environment variables. This is equivalent to running
# source /env/bin/activate

ENV VIRTUAL_ENV /env
ENV PATH /env/bin:$PATH
ADD requirements.txt /app/
RUN pip install -r requirements.txt
ADD . /app/

RUN apt-get update
RUN apt-get install imagemagick -y
RUN apt-get install ghostscript

CMD exec gunicorn -b :$PORT main:app

最佳答案

将这些步骤移至Dockerfile的前面。

Docker的图层缓存功能意味着它不会从完全相同的基础镜像中重建已经运行的步骤。但是,一旦您执行使缓存无效的步骤,此后将不会缓存任何内容。特别是,如果源树中的所有内容都发生更改,那么ADD .步骤将使缓存无效。

在样式方面,我还要更改另外两件事。首先,出于类似的缓存原因,在同一RUN步骤中运行apt-get updateapt-get install非常重要,因为先前从“更新”中缓存的URL可能无效。其次,由于Docker镜像已经提供了隔离的文件系统和Python安装,因此我不会费心尝试设置Python虚拟环境。

最终,您将拥有:

FROM gcr.io/google-appengine/python
LABEL python_version=python3.6
RUN apt-get update \
&& apt-get install -y ghostscript imagemagick
COPY requirements.txt /app/
RUN pip install -r requirements.txt
COPY . /app/
EXPOSE 8000
CMD ["gunicorn", "-b", ":8000", "main:app"]

关于docker - 有没有一种方法可以在App Engine中一次安装软件包,以避免每次长时间部署?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54370703/

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