我正在Docker容器中的Heroku上运行一个Django应用程序。(容器是安装两个额外驱动程序所必需的。)我正在将来自gitlab CI的图像推送到一个gitlab-ci.yml文件中。我的问题是需要一段时间来构建映像。这是因为gitlab没有缓存图像。当我第一次从Heroku拉取图像时,gitlab似乎忽略了它。我的.gitlab-ci.yml文件如下所示:
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代码运行得很好,但由于没有缓存,所以构建起来需要一段时间。有人能帮我加快部署速度吗?谢谢!
发布于 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注册表上的最新标签,并在下一次构建中使用最新的镜像版本作为缓存,您可以在将构建的镜像推送回注册表之前,使用其版本和“最新”来标记它。
https://stackoverflow.com/questions/54343598
复制相似问题