[英]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.