Bitbucket管道错误-容器'docker'超出内存限制。

22
我看到了Bitbucket Pipeline错误 - 容器“docker”在运行Bitbucket Pipeline时超出了内存限制。我尝试按照以下文档使用所有可能的服务内存限制,但问题未得到解决。 数据库和服务容器 - 服务内存限制 你能帮忙解决这个问题吗?

有相同的问题,但是随机发生.. 真的很烦人。说真的,Atlassian 怎么想的??我们正在使用云构建服务器来消除硬件限制.. - Küzdi Máté
嗨,我优化了Pipeline使用的Docker文件,解决了内存问题。 - ElasticSearchUser
4个回答

39
我联系了Bitbucket,他们提供了一个解决方案:
  • 在流水线开始之前(在pipelines:之前)

选项:
  docker:true
  size:2x

  • 在每个大的步骤中:

名称:XXXX
镜像:google/cloud-sdk:latest
服务:
  - docker
size:2x

  • 在流水线结束时:

定义:
  服务:
    docker:
      memory:4096


3
为什么我需要同时添加 options|docker 和 services|docker?我以为 options|docker 只是为每个步骤提供 Docker 服务的简写形式。 - Markus Rohlof

15

由于你的构建占用了比分配的更多内存,需要在你的bitbucket-pipelines.yml文件中添加以下内容来解决此问题

image: .....
options:      <= Add this
  docker: true <= Add this
  size: 2x   <= Add this
pipelines:
  branches:
   branches:
    master:
      - step:
          caches:
            - ....
          services: <= Add this
            - docker <= Add this
definitions: <= Add this
  services: <= Add this
    docker: <= Add this
      memory: 4096 <= Add this

3
为什么我需要同时添加options|docker和services|docker?我以为options|docker只是为每个步骤提供docker服务的速记法? - Markus Rohlof

5

如前所述,您可以在步骤中使用size: 2x来增加该步骤的内存限制,或者在选项中设置它,这将自动为所有步骤启用2倍大小。

但值得注意的是,这样做将比常规步骤消耗两倍的构建分钟数,实际上需要花费两倍的费用,详见此处


1

将流水线yaml更新为以下内容,它能够正常工作:

对于每个大步骤

  - step:
      name: 'Bitbucket pipeline test'
      services:
        - docker
      size: 2x

在管道的末尾

definitions:
  services:
    docker:
      memory: 4096   # as per your requirement

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接