首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Bitbucket管道设置中的缓存步骤

Bitbucket管道设置中的缓存步骤
EN

Stack Overflow用户
提问于 2021-04-04 16:27:32
回答 2查看 393关注 0票数 1

我的bitbucket管道如下所示。

代码语言:javascript
运行
复制
pipelines:
  branches:
    master:
      - step:
          script:
            - apt-get update
            - apt-get install -y zip
            - zip -r web.zip .
            - pipe: atlassian/aws-code-deploy:0.2.5

当它在bitbucket管道上运行时,我可以看到它总是下载docker镜像,并在每次部署时执行相同的操作,是否有方法在管道中缓存以下步骤?

代码语言:javascript
运行
复制
pipe: atlassian/aws-code-deploy:0.2.5
2s
+ docker container run \
   --volume=/opt/atlassian/pipelines/agent/build:/opt/atlassian/pipelines/agent/build \
   --volume=/opt/atlassian/pipelines/agent/ssh:/opt/atlassian/pipelines/agent/ssh:ro \
   --volume=/usr/local/bin/docker:/usr/local/bin/docker:ro \
   --volume=/opt/atlassian/pipelines/agent/build/.bitbucket/pipelines/generated/pipeline/pipes:/opt/atlassian/pipelines/agent/build/.bitbucket/pipelines/generated/pipeline/pipes \
   --volume=/opt/atlassian/pipelines/agent/build/.bitbucket/pipelines/generated/pipeline/pipes/atlassian/aws-code-deploy:/opt/atlassian/pipelines/agent/build/.bitbucket/pipelines/generated/pipeline/pipes/atlassian/aws-code-deploy \
   --workdir=$(pwd) \
   --label=org.bitbucket.pipelines.system=true \
   --env=BITBUCKET_STEP_TRIGGERER_UUID="$BITBUCKET_STEP_TRIGGERER_UUID" \
   --env=BITBUCKET_REPO_FULL_NAME="$BITBUCKET_REPO_FULL_NAME" \
   --env=BITBUCKET_GIT_HTTP_ORIGIN="$BITBUCKET_GIT_HTTP_ORIGIN" \
   --env=BITBUCKET_PROJECT_UUID="$BITBUCKET_PROJECT_UUID" \
   --env=BITBUCKET_REPO_IS_PRIVATE="$BITBUCKET_REPO_IS_PRIVATE" \
   --env=BITBUCKET_WORKSPACE="$BITBUCKET_WORKSPACE" \
   --env=BITBUCKET_REPO_OWNER_UUID="$BITBUCKET_REPO_OWNER_UUID" \
   --env=BITBUCKET_BRANCH="$BITBUCKET_BRANCH" \
   --env=BITBUCKET_REPO_UUID="$BITBUCKET_REPO_UUID" \
   --env=BITBUCKET_PROJECT_KEY="$BITBUCKET_PROJECT_KEY" \
   --env=BITBUCKET_REPO_SLUG="$BITBUCKET_REPO_SLUG" \
   --env=CI="$CI" \
   --env=BITBUCKET_REPO_OWNER="$BITBUCKET_REPO_OWNER" \
   --env=BITBUCKET_STEP_RUN_NUMBER="$BITBUCKET_STEP_RUN_NUMBER" \
   --env=BITBUCKET_BUILD_NUMBER="$BITBUCKET_BUILD_NUMBER" \
   --env=BITBUCKET_GIT_SSH_ORIGIN="$BITBUCKET_GIT_SSH_ORIGIN" \
   --env=BITBUCKET_PIPELINE_UUID="$BITBUCKET_PIPELINE_UUID" \
   --env=BITBUCKET_COMMIT="$BITBUCKET_COMMIT" \
   --env=BITBUCKET_CLONE_DIR="$BITBUCKET_CLONE_DIR" \
   --env=PIPELINES_JWT_TOKEN="$PIPELINES_JWT_TOKEN" \
   --env=BITBUCKET_STEP_UUID="$BITBUCKET_STEP_UUID" \
   --env=BITBUCKET_DOCKER_HOST_INTERNAL="$BITBUCKET_DOCKER_HOST_INTERNAL" \
   --env=DOCKER_HOST="tcp://host.docker.internal:2375" \
   --env=BITBUCKET_PIPE_SHARED_STORAGE_DIR="/opt/atlassian/pipelines/agent/build/.bitbucket/pipelines/generated/pipeline/pipes" \
   --env=BITBUCKET_PIPE_STORAGE_DIR="/opt/atlassian/pipelines/agent/build/.bitbucket/pipelines/generated/pipeline/pipes/atlassian/aws-code-deploy" \
   --env=APPLICATION_NAME="$APPLICATION_NAME" \
   --env=AWS_ACCESS_KEY_ID="$AWS_ACCESS_KEY_ID" \
   --env=AWS_DEFAULT_REGION="$AWS_DEFAULT_REGION" \
   --env=AWS_SECRET_ACCESS_KEY="$AWS_SECRET_ACCESS_KEY" \
   --env=COMMAND="deploy" \
   --env=DEPLOYMENT_GROUP="$DEPLOYMENT_GROUP" \
   --env=FILE_EXISTS_BEHAVIOR="OVERWRITE" \
   --env=IGNORE_APPLICATION_STOP_FAILURES="true" \
   --env=S3_BUCKET="$S3_BUCKET" \
   --env=VERSION_LABEL="-web-1.0.2" \
   --env=WAIT="true" \
   --add-host="host.docker.internal:$BITBUCKET_DOCKER_HOST_INTERNAL" \
   bitbucketpipelines/aws-code-deploy:0.2.5
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-04-13 20:51:40

您可以使用以下内容作为缓存节点的示例

代码语言:javascript
运行
复制
- step:
   caches:
     - docker
票数 1
EN

Stack Overflow用户

发布于 2021-06-06 14:21:48

Bitbucket管道实际上只是docker run命令的包装器。您可以看到,在输出run命令中没有--pull always标志。因此,您可以利用docker缓存管道提供的功能。

代码语言:javascript
运行
复制
- step:
    script:
      - ...
    caches:
      - docker
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66939324

复制
相关文章

相似问题

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