问题描述
我有需要 docker cassandra 启动和运行的 Scala 测试。
根据配置我得到其中之一
Container 'Build' exceeded memory limit.
Container 'docker' exceeded memory limit.
- Cassandra 容器 OOM
解决方法
最后是 cassandra 配置,但也有一组 bitbucket 配置:
- cassandra 环境变量,为测试容器设置,但可以通过任何其他方式传递给 docker
val container: CassandraContainer = CassandraContainer()
container.container.addEnv("JVM_OPTS","-Xms1024M -Xmx1024M")
container.container.addEnv("HEAP_NEWSIZE","128M")
container.container.addEnv("MAX_HEAP_SIZE","2048M")
container.start()
- bitbucket 管道
options:
docker: true
size: 2x # Increase max size to 8GB
definitions:
services:
docker:
memory: 4096 # Give 4 to docker
...
- step:
name: run the tests
caches:
- sbt
- ivy2
script:
- export TESTCONTAINERS_RYUK_DISABLED=true
# Limit sbt memory usage
- export SBT_OPTS="-Xms1024m -Xmx1024m -XX:+CMSClassUnloadingEnabled -Xss4m -XX:+UseConcMarkSweepGC"
- sbt -v scalafmtSbtCheck scalafmtCheck +compile +test
services:
- docker