我正在使用custom runtime部署到应用引擎,我注意到在部署时,应用引擎将完全重新构建我的Dockerfile而不进行任何缓存。这会导致部署时间更长。我没有在部署之间更改我的Dockerfile。只有我的应用程序代码正在改变这是我的Dockerfile:
FROM ubuntu
EXPOSE 8080
RUN apt-get update
RUN apt-get install -yq python-crypto python-openssl libffi-dev libssl-dev
RUN pip install --upgrade pip
RUN pip install gunicorn==19.4.5
RUN pip install Flask==0.10.1
RUN pip install PyMySQL==0.7.2
RUN pip install alembic==0.8.5
RUN pip install Flask-Migrate==1.8.0
RUN pip install Flask-CORS==2.1.2
RUN pip install PyCrypto==2.6.1
RUN pip install requests==2.9.1
RUN pip install --upgrade cffi
RUN pip install google-api-python-client==1.5.0
RUN pip install gcloud==0.11.0
# Ensure that Python outputs everything that's printed inside
# the application rather than buffering it.
ENV PYTHONUNBUFFERED 1
ADD . /app/
WORKDIR /app
ENTRYPOINT ["gunicorn", "-b", ":8080", "server:app"]
有没有办法加快我的部署?
答案 0 :(得分:1)
部署的目标是构建将作为应用程序执行的docker镜像。
dockerfile只包含docker image构建指令,因此其内容不会改变的事实意味着什么 - 仍然需要执行构建指令才能获得新的docker镜像。
加速docker镜像构建的唯一方法是将未更改的临时结果(例如当前FROM
图像加上安装的所有pip
包)存储为临时docker镜像,作为参考FROM
用于另一个仅更新应用代码的dockerfile。但AFAIK GAE(至少尚未)允许保存此类自定义中间图像,以便在构建其他自定义图像时重新用作基本图像。
答案 1 :(得分:0)
如果您有正确配置的本地docker环境,则可以使用--docker-build local
标志执行本地构建。
--docker-build DOCKER_BUILD
执行托管(“远程”)或本地(“本地”)Docker构建。要执行本地构建,必须正确配置本地docker环境。默认为托管构建。
- https://cloud.google.com/sdk/gcloud/reference/preview/app/deploy#--docker-build