首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Docker pull -从Gitlab CI构建并推送到Heroku

Docker pull -从Gitlab CI构建并推送到Heroku
EN

Stack Overflow用户
提问于 2019-01-24 17:45:23
回答 1查看 464关注 0票数 1

我正在Docker容器中的Heroku上运行一个Django应用程序。(容器是安装两个额外驱动程序所必需的。)我正在将来自gitlab CI的图像推送到一个gitlab-ci.yml文件中。我的问题是需要一段时间来构建映像。这是因为gitlab没有缓存图像。当我第一次从Heroku拉取图像时,gitlab似乎忽略了它。我的.gitlab-ci.yml文件如下所示:

代码语言:javascript
复制
image: docker:latest
services:
  - docker:dind

variables:
  DOCKER_DRIVER: overlay

stages:
  - build

docker-build:
  stage: build
  script:
  - docker login -u _ -p $HEROKU_TOKEN registry.heroku.com 
  - docker pull registry.heroku.com/xxx/web
  - docker build . -f Dockerfile --iidfile imageid.txt -t registry.heroku.com/xxx/web 
  - docker push registry.heroku.com/xxx/web

代码运行得很好,但由于没有缓存,所以构建起来需要一段时间。有人能帮我加快部署速度吗?谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-01-24 19:12:57

根据您的Gitlab设置,Ci runner可以直接在主机上运行,也可以在分布式环境中运行。在后一种情况下,Gitlab文档提到在构建docker镜像时使用-from-cache选项:https://docs.gitlab.com/ee/ci/docker/using_docker_build.html#using-docker-caching

本质上,它将从Heroku docker注册表中拉出正在构建的映像的最新版本,并使用它仅构建在更新的映像上发生更改的层。

为了更新docker注册表上的最新标签,并在下一次构建中使用最新的镜像版本作为缓存,您可以在将构建的镜像推送回注册表之前,使用其版本和“最新”来标记它。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54343598

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档