簡體   English   中英

CircleCI Docker 已退出,代碼為 137

[英]CircleCI Docker Exited with code 137

我正在使用- image: peopleperhour/dynamodb作為我的 CircleCI 配置文件中的 docker 鏡像。

在 CircleCI 中,它輸出以下內容。

Initializing DynamoDB Local with the following configuration:
Port:   8000
InMemory:   false
DbPath: /var/dynamodb_local
SharedDb:   false
shouldDelayTransientStatuses:   false
CorsParams: *


Exited with code 137

第一次測試通過得很好,直到后來才Exited with code 137 但是一旦發生該錯誤,所有測試就會開始失敗。

我看到了這個鏈接並將我的代碼更改為以下但沒有運氣。

  - image: peopleperhour/dynamodb
    environment:
        MAX_HEAP_SIZE: 2048m
        HEAP_NEWSIZE: 512m

有想法該怎么解決這個嗎?

我遇到了同樣的問題。 我最終只使用了 localstack,因為內存占用似乎更低。

我對該容器的配置如下所示:

- image: localstack/localstack
    environment:
      SERVICES: dynamodb:4570
      DEFAULT_REGION: us-west-2

作為解決方法,您可以嘗試為容器指定重啟策略:

- image: peopleperhour/dynamodb
  restart: on-failure # Restart the container if it exits due to an error
  environment:
    MAX_HEAP_SIZE: 2048m
    HEAP_NEWSIZE: 512m

您可以嘗試其他 3 種方法。

1:

將資源限制添加到 config.yml 資源的 docker 部分:

            requests:
              memory: "2Gi"
            limits:
              memory: "4Gi"

默認資源為中等,具有 2 個 vCPU 和 4GB 內存。

2:

使用 Java 選項環境變量來設置內存限制。 https://circleci.com/blog/how-to-handle-java-oom-errors/

3:

如果您使用的是非基本帳戶,您可以告訴 Circleci 使用不同的機器 resource_class。 你必須為此制定績效計划。 https://circleci.com/docs/2.0/configuration-reference/#resource_class

我使用amazon/dynamodb-local容器在 CircleCI 上本地啟動 DynamoDB。 我遇到了同樣的問題,通過容器設置MAX_HEAP_SIZE和 Java 選項對我來說也不起作用。 我發現最好的方法是覆蓋容器的入口點:

docker:
- image: amazon/dynamodb-local:1.13.1
  entrypoint: java -Djava.library.path=./DynamoDBLocal_lib -Xmx256m -jar DynamoDBLocal.jar -sharedDb -port 8000

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM