我正在使用来自DockerHub的外部Docker镜像。
在每一步中,dockerimage都会一次又一次地从dockerhub中提取。是的,这是所需的工作流程。
我的问题是我们能不能缓存这个镜像,这样它就不会在每一步都从dockerhub中拉取了?这个DockerImage不会经常改变,因为它只预装了node和meteor。
那么可以缓存Docker镜像吗?
原始bitbucket-pipeline.yml
image: tasktrain/node-meteor-mup
pipelines:
branches:
'{develop}':
- step:
name: "Client: Install Dependencies"
caches:
- node
script:
- npm install
- npm run setup-meteor-client-bundle
artifacts:
- node_modules/**
- step:
name: "Client: Build for Staging"
script:
- npm run build-browser:stag
artifacts:
- dist/**
- step:
name: "Client: Deploy to Staging"
deployment: staging
script:
- pipe: atlassian/aws-s3-deploy:0.2.2
variables:
AWS_ACCESS_KEY_ID: $AWS_ACCESS_KEY_ID
AWS_SECRET_ACCESS_KEY: $AWS_SECRET_ACCESS_KEY
AWS_DEFAULT_REGION: $AWS_DEFAULT_REGION
S3_BUCKET: $S3_STAGING_BUCKET_NAME
LOCAL_PATH: 'dist'
ACL: "public-read"
DELETE_FLAG: "true"
EXTRA_ARGS: "--follow-symlinks --quiet"
- step:
name: "Server: Build and Deploy to Staging"
script:
- cd server
- mup setup --config=.deploy/mup-settings.stag.js
- mup deploy --config=.deploy/mup-settings.stag.js --settings=meteor-settings.stag.json
字符串
2条答案
按热度按时间mxg2im7a1#
正如OP在对另一个答案的评论中所说,定义Docker缓存对构建映像本身不起作用
字符串
它总是为每个步骤下载,然后在该映像中执行步骤脚本。Afaik,Docker缓存
型
只适用于图片拉或内置 * 在 * 一个步骤。
然而,Bitbucket Pipelines最近开始在内部缓存公共构建镜像,根据这个blog post:
公共镜像缓存-在幕后,Pipelines最近开始缓存公共Docker镜像,从而显著提高了在我们的基础设施上运行的所有构建的启动时间。
还有一个open feature request也可以缓存私有构建映像。
rn0zuynd2#
确实可以缓存依赖项,Docker是Bitbucket Pipelines的pre-defined caches之一
字符串