Kar*_*yan 5 amazon-web-services amazon-ecs elasticsearch sonarqube aws-fargate
我正在尝试在 AWS fargate 平台上运行 sonarqube 应用程序。当我运行原始 docker 图像时,它就像一个魅力。但是如果我将 JDBC 属性作为参数传递给容器,我将面临以下问题。显然,弹性搜索需要一个新的配置。如果是 ECS 集群,我会将 ssh 连接到 EC2 实例并更新这些属性。在 fargate 的情况下,我如何实现这一目标?
max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
从 github 问题来看似乎不可能,因为 Fargate 中没有 EC2 实例或 Host ivolvole。
max_map_count
错误的解决方法似乎是max_memory_map
直接在主机上设置(这可能会导致不良副作用,或者在 docker run 命令上使用 sysctl 标志。不幸的是,Fargate 不支持这两个选项,因为它涉及与容器实例本身。
但另一种方法是增加file limit
和禁用mmap
检查。
I had to properly configure U limits on my ECS task definition, something like:
"ulimits": [
{
"name": "nofile",
"softLimit": 65535,
"hardLimit": 65535
}
]
Run Code Online (Sandbox Code Playgroud)
我在 ElasticSearch 中禁用了 mmap,它摆脱了
max_map_count
设置要求。这可以通过配置sonar.search.javaAdditionalOpts SonarQube
设置来完成。我无法使用环境变量来执行此操作,因为 ECS 似乎正在吞噬它们,但最后我只是将它作为参数传递给容器,由于设置了入口点并正确使用参数,因此它可以工作。就我而言:
"command": [
"-Dsonar.search.javaAdditionalOpts=-Dnode.store.allow_mmapfs=false"
]
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1661 次 |
最近记录: |