首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Google & Docker "Cloud“--以前工作过的构建现在提供137状态代码

Google & Docker "Cloud“--以前工作过的构建现在提供137状态代码
EN

Stack Overflow用户
提问于 2022-09-15 00:13:01
回答 2查看 221关注 0票数 1

在过去的两个多月里,我一直在运行中的一些构建管道,这些管道使用的是坞-撰写,没有任何问题。管道使用Docker建立一个集成测试环境,并使用docker exec命令在主容器(容器-dev)上运行适用的单元和集成测试。

下面是云构建文件的一个片段:

代码语言:javascript
复制
  - id: "Set Up Testing Instances (Docker Compose)"
    name: docker
    env:
      - 'DISCORD_TOKEN=automated_test'
      - 'DOCKER_NETWORK=cloudbuild'
    args: ["compose", "up", "-d", "--build"]

  - id: "Run Unit & Integration Tests"
    name: docker
    args: ["exec", "container-dev", "python", "-m", "coverage", "run", "-m", "pytest"]

  - id: "Show Test Coverage"
    name: docker
    args: ["exec", "container-dev", "python", "-m", "coverage", "report"]

  - id: "Build Test Docker Container"
    name: docker
    entrypoint: /bin/bash
    args: ["build", ".", "--target", "live", "-t", "us-east1-docker.pkg.dev/$PROJECT_ID/my-registry/mycontainer:test"]

这个配置已经为我工作了几个月了。然而,在9月13日突然间,当我试图运行这些管道(甚至重新尝试以前成功的)时,我遇到了一个问题,即步骤2、单元测试和集成测试在没有详细推理的情况下失败,只给出了状态代码137。我得到的日志如下:

代码语言:javascript
复制
Starting Step #1 - "Run Unit & Integration Tests"
Step #1 - "Run Unit & Integration Tests": Already have image (with digest): gcr.io/cloud-builders/docker
Finished Step #1 - "Run Unit & Integration Tests"
ERROR
ERROR: build step 1 "gcr.io/cloud-builders/docker" failed: step exited with non-zero status: 137

我知道,如果运行容器的机器已耗尽内存,或已被另一个进程终止,则会发生状态代码137。最令人费解的方面是以前的成功管道是如何在重试时失败的。

除非最近在云构建中使用的底层机器发生了变化,否则我不认为内存可用性是问题所在。我试着只在一个独立容器中运行单元测试(没有停靠器组合),内存使用量明显减少,结果完全相同。公分母是图像gcr.io/cloud-builders/docker

我的问题是:最近对云构建所做的更改会影响到这一点吗?为什么现在才发生这种事?

编辑:我尝试了更多的东西,比如更新来自谷歌的所有Docker图像,并更新了上面的YAML以反映这一点。137条信息现在又回来了。在此之前,对接者编写步骤似乎过早地终止,这将导致错误代码1(容器不可用)。

现在,由于我通过升级映像来解决这个问题,137错误又回来了,甚至当我从我的回购的主要分支运行时也是如此,我的回购在9月13日之前就已经成功了。我也使用了更多的内存/CPU来运行管道,但这仍然实现了相同的结果,即来自停靠程序的137个错误代码。

至于日志,我在上面发布的内容和我现在得到的几乎是一样的。为了获得更多的上下文,我将在这里添加几行。管道的第0步是在运行时在cloudbuild网络上设置容器,以便容器可以相互访问。

第一步是运行一个Docker映像,尝试在容器上运行exec命令来运行其单元测试,这就是它在137中失败的地方,它说它已经有了码头映像,然后在没有任何日志的情况下切断,所以我不知道容器内部发生了什么。

代码语言:javascript
复制
Step #0 - "Set Up Testing Instances (Docker Compose)": 
Step #0 - "Set Up Testing Instances (Docker Compose)": #26 [container-dev] exporting to image
Step #0 - "Set Up Testing Instances (Docker Compose)": #26 exporting layers
Step #0 - "Set Up Testing Instances (Docker Compose)": #26 exporting layers 1.6s done
Step #0 - "Set Up Testing Instances (Docker Compose)": #26 writing image sha256:9ae549b1894c5ffcfadde428bd790fc26201a3a5b56b9d199adfac67b58ce669 done
Step #0 - "Set Up Testing Instances (Docker Compose)": #26 naming to docker.io/library/container-dev done
Step #0 - "Set Up Testing Instances (Docker Compose)": #26 DONE 2.8s
Step #0 - "Set Up Testing Instances (Docker Compose)": Container cloud-storage  Creating
Step #0 - "Set Up Testing Instances (Docker Compose)": Container firestore  Creating
Step #0 - "Set Up Testing Instances (Docker Compose)": Container pubsub  Creating
Step #0 - "Set Up Testing Instances (Docker Compose)": Container cloud-storage  Created
Step #0 - "Set Up Testing Instances (Docker Compose)": Container firestore  Created
Step #0 - "Set Up Testing Instances (Docker Compose)": Container pubsub  Created
Step #0 - "Set Up Testing Instances (Docker Compose)": Container data-prep  Creating
Step #0 - "Set Up Testing Instances (Docker Compose)": Container data-prep  Created
Step #0 - "Set Up Testing Instances (Docker Compose)": Container container-dev  Creating
Step #0 - "Set Up Testing Instances (Docker Compose)": Container container-dev  Created
Step #0 - "Set Up Testing Instances (Docker Compose)": Container cloud-storage  Starting
Step #0 - "Set Up Testing Instances (Docker Compose)": Container firestore  Starting
Step #0 - "Set Up Testing Instances (Docker Compose)": Container pubsub  Starting
Step #0 - "Set Up Testing Instances (Docker Compose)": Container firestore  Started
Step #0 - "Set Up Testing Instances (Docker Compose)": Container cloud-storage  Started
Step #0 - "Set Up Testing Instances (Docker Compose)": Container pubsub  Started
Step #0 - "Set Up Testing Instances (Docker Compose)": Container data-prep  Starting
Step #0 - "Set Up Testing Instances (Docker Compose)": Container data-prep  Started
Step #0 - "Set Up Testing Instances (Docker Compose)": Container container-dev  Starting
Step #0 - "Set Up Testing Instances (Docker Compose)": Container container-dev  Started
Finished Step #0 - "Set Up Testing Instances (Docker Compose)"
Starting Step #1 - "Run Unit & Integration Tests"
Step #1 - "Run Unit & Integration Tests": Already have image: docker
Finished Step #1 - "Run Unit & Integration Tests"
ERROR
ERROR: build step 1 "docker" failed: step exited with non-zero status: 137
EN

回答 2

Stack Overflow用户

发布于 2022-09-16 06:58:57

我首先使用正式的Cloud映像:在这三个步骤中将name属性设置为docker如前所述。旧的图像名称不再受到很好的支持。

然后,不要忘记将第一步的第一个参数从docker-compose更改为compose

票数 2
EN

Stack Overflow用户

发布于 2022-09-19 22:50:51

经过多次尝试和错误之后,我发现最终被测试的容器由于缺少依赖关系而失败。出于某种原因,Google /Sub库进行了无声的升级/更改,突然需要一个名为pytz的库,它没有包含在它们的setup.py/pyproject.toml中,不知道这是如何发生的.

无论如何,在将pytz直接添加到我的requirements.txt文件后,容器现在可以工作了,并且管道运行。

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

https://stackoverflow.com/questions/73724341

复制
相关文章

相似问题

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