我有Scala测试,需要docker cassandra启动并运行。
我得到了其中一个取决于配置
Container 'Build' exceeded memory limit.
Container 'docker' exceeded memory limit.
- Cassandra容器OOM
最终获胜的是cassandra配置,还有一组比特桶配置:
- cassandra env变量,为测试容器设置,但可以通过任何其他方式传递给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()
- 比特桶管道
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