Конвейеры Bitbucket выходят из строя при недостаточной памяти во время тестирования с помощью cassandra в docker (Scala)

#docker #cassandra #bitbucket #testcontainers

Вопрос:

У меня есть тесты Scala, которые требуют, чтобы докер кассандра была запущена и запущена.

Я получаю один из них в зависимости от конфигурации

  • Container 'Build' exceeded memory limit.
  • Container 'docker' exceeded memory limit.
  • Контейнер Кассандры ООМ

Ответ №1:

В конце концов, это была конфигурация кассандры для победы, а также набор конфигураций bitbucket:

  • переменные 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()
 
  • трубопроводы 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