wooing

SonarQube 8.9버전 docker-compose.yaml ES_JAVA_HOME, Elastic Search 환경 변수 문제 본문

오류일지

SonarQube 8.9버전 docker-compose.yaml ES_JAVA_HOME, Elastic Search 환경 변수 문제

우잉_ 2025. 1. 9. 01:26

문제

SonarQube 8.9버전과 PostgreSQL을 구축하기 위해 Docker-compose를 사용하였다. sonarQube 공식문서의 내용 바탕으로 docker compose를 작성하여 빌드한 결과 아래의 오류가 발생하였다.

2024-12-04 10:47:01 2024.12.04 01:47:01 INFO  app[][o.s.a.SchedulerImpl] Waiting for` `Elasticsearch to be up and running`
2024-12-04 10:47:01 warning: usage of JAVA_HOME is deprecated, use ES_JAVA_HOME`
2024-12-04 10:47:01 warning: no-jdk distributions that do` `not bundle a JDK are deprecated and will be removed in` `a future release`
2024-12-04 10:47:01 OpenJDK 64-Bit Server VM warning: Option UseConcMarkSweepGC was deprecated in` `version 9.0 and will likely be removed in` `a future release.`
2024-12-04 10:47:03 2024.12.04 01:47:03 WARN  es[][o.e.b.JNANatives] unable to install` `syscall filter:`
2024-12-04 10:47:03 java.lang.UnsupportedOperationException: seccomp unavailable: CONFIG_SECCOMP not compiled into kernel, CONFIG_SECCOMP and CONFIG_SECCOMP_FILTER are needed`
2024-12-04 10:47:03     at org.elasticsearch.bootstrap.SystemCallFilter.linuxImpl(SystemCallFilter.java:331) ~[elasticsearch-7.12.1.jar:7.12.1]`
2024-12-04 10:47:03     at org.elasticsearch.bootstrap.SystemCallFilter.init(SystemCallFilter.java:606) ~[elasticsearch-7.12.1.jar:7.12.1]`
2024-12-04 10:47:03     at org.elasticsearch.bootstrap.JNANatives.tryInstallSystemCallFilter(JNANatives.java:248) [elasticsearch-7.12.1.jar:7.12.1]`
2024-12-04 10:47:03     at org.elasticsearch.bootstrap.Natives.tryInstallSystemCallFilter(Natives.java:102) [elasticsearch-7.12.1.jar:7.12.1]`
2024-12-04 10:47:03     at org.elasticsearch.bootstrap.Bootstrap.initializeNatives(Bootstrap.java:106) [elasticsearch-7.12.1.jar:7.12.1]`
2024-12-04 10:47:03     at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:168) [elasticsearch-7.12.1.jar:7.12.1]`
2024-12-04 10:47:03     at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:397) [elasticsearch-7.12.1.jar:7.12.1]`
2024-12-04 10:47:03     at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:159) [elasticsearch-7.12.1.jar:7.12.1]`
2024-12-04 10:47:03     at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:150) [elasticsearch-7.12.1.jar:7.12.1]`
2024-12-04 10:47:03     at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:75) [elasticsearch-7.12.1.jar:7.12.1]`
2024-12-04 10:47:03     at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:116) [elasticsearch-cli-7.12.1.jar:7.12.1]`
2024-12-04 10:47:03     at org.elasticsearch.cli.Command.main(Command.java:79) [elasticsearch-cli-7.12.1.jar:7.12.1]`
2024-12-04 10:47:03     at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:115) [elasticsearch-7.12.1.jar:7.12.1]`
2024-12-04 10:47:03     at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:81) [elasticsearch-7.12.1.jar:7.12.1]`
2024-12-04 10:47:04 2024.12.04 01:47:04 INFO  es[][o.e.n.Node] version[7.12.1], pid[38], build[default/tar/3186837139b9c6b6d23c3200870651f10d3343b7/2021-04-20T20:56:39.040728659Z], OS[Linux/6.10.4-linuxkit/amd64], JVM[AdoptOpenJDK/OpenJDK` `64-Bit Server VM/11.0.11/11.0.11+9]`


원인

환경변수 ES_JAVA_HOME 부재, sonar elastic search의 환경변수(system_call_filter)문제

해결 방법

  • ES_JAVA_HOME의 경로를 container의 JDK 경로로 지정
    • ES_JAVA_HOME=/opt/java/openjdk
  • elastic search 환경 변수 정의
    • SONAR_SEARCH_JAVAADDITIONALOPTS=-Dbootstrap.system_call_filter=false

 

예시) docker-compose.yaml 일부

version: "3"

services:
    sonarqube:
        image: sonarqube:community
        platform: linux/x86_64        
        environment:
            SONAR_JDBC_URL: jdbc:postgresql://db:5432/sonar
            SONAR_JDBC_USERNAME: sonar
            SONAR_JDBC_PASSWORD: sonar
            SONAR_SEARCH_JAVAADDITIONALOPTS: "-Dbootstrap:system_call_filter=false"

 

출처

ES 환경 변수 지정 - https://community.sonarsource.com/t/failed-to-run-sonarqube-by-docker-compose-yml/52998/4