Sonarqube не удалось создать пользовательский кеш - PullRequest
1 голос
/ 17 февраля 2020

Я создаю среду Sonarqube с Docker, но при запуске сканера произошла ошибка.

Я запускаю сканер непосредственно в контейнер:

PS C:\docker\sonarqube\projects\test> docker exec -it sonarqube /bin/bash
sonarqube@05399e4fa8a6:/home/projects/test$ sonar-scanner

ИНФОРМАЦИЯ: Файл конфигурации сканера: / usr / lib / sonar-scanner / conf / sonar-scanner .properties
INFO: файл конфигурации Project root: /home/projects/test/sonar-project.properties
INFO: SonarQube Scanner 4.2.0.1873
INFO: Java 11.0.3 AdoptOpenJDK (64 -бит)
ИНФОРМАЦИЯ: Linux 4.9.184-linuxkit amd64
ИНФОРМАЦИЯ: ---------------------------- --------------------------------------------
ИНФОРМАЦИЯ: ИСПОЛНЕНИЕ НЕИСПРАВНОСТЬ
ИНФОРМАЦИЯ: -------------------------------------------- ----------------------------
ИНФОРМАЦИЯ: Общее время: 0,364 с
ИНФОРМАЦИЯ: Финальная память: 2М / 10М
ИНФОРМАЦИЯ: ---------------------------------------------- --------------------------
ОШИБКА: ошибка во время выполнения сканера SonarQube
java .lang.IllegalStateException: невозможно создать пользовательский кеш: /home/.sonar/cache
at org.sonarsource.scanner.api.internal.cache.FileCache.createDir (FileCache. java: 147)
в o rg.sonarsource.scanner.api.internal.cache.FileCache. (FileCache. java: 46)
в org.sonarsource.scanner.api.internal.cache.FileCache.create (FileCache. java: 52 )
в org.sonarsource.scanner.api.internal.cache.FileCacheBuilder.build (FileCacheBuilder. java: 48)
в org.sonarsource.scanner.api.internal.JarDownloaderFactory.create (JarDownloader) 1060 *: 42)
в org.sonarsource.scanner.api.internal.IsolatedLauncherFactory.createLauncher (IsolatedLauncherFactory. java: 68)
в org.sonarsource.scanner.api.EmbeddedScanner.doStart (EmbeddedScanner. 1062 *: 185)
в org.sonarsource.scanner.api.EmbeddedScanner.start (EmbeddedScanner. java: 123)
в org.sonarsource.scanner.cli.Main.execute (Main. java : 73)
at org.sonarsource.scanner.cli.Main.main (Main. java: 61)
Причина: java .nio.file.AccessDeniedException: /home/.sonar/cache
в java .base / sun.nio.fs.UnixException.translateToIOException (неизвестный источник)
в java .base / sun.nio.fs.UnixExcept ion.rethrowAsIOException (неизвестный источник)
в java .base / sun.nio.fs.UnixException.rethrowAsIOException (неизвестный источник)
в java .base / sun.nio.fs.UnixFileSystemProvider.createDirectory ( Неизвестный источник)
в java .base / java .nio.file.Files.createDirectory (Неизвестный источник)
в java .base / java .nio.file.Files.createAndCheckIsDirectory ( Неизвестный источник)
в java .base / java .nio.file.Files.createDirectories (Неизвестный источник)
в org.sonarsource.scanner.api.internal.cache.FileCache.createDir (FileCache. java: 145)
... еще 9

Вот докер-файл, который я использую в docker -компоненте:

FROM sonarqube:latest  

# Switch to root user to be able to install packages.  
USER root  

# Install packages.  
RUN apt-get update  
RUN apt-get install -y vim wget  

# Install sonarqube scanner.  
WORKDIR /usr/src  

RUN wget https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-4.2.0.1873-linux.zip  

RUN unzip sonar-scanner-cli-4.2.0.1873-linux.zip  
RUN rm sonar-scanner-cli-4.2.0.1873-linux.zip  
RUN mv sonar-scanner-4.2.0.1873-linux /usr/lib/sonar-scanner  

# Create symbolic link.  
RUN ln -s /usr/lib/sonar-scanner/bin/sonar-scanner /usr/local/bin/sonar-scanner  
ENV SONAR_RUNNER_HOME=/usr/lib/sonar-scanner  

ENV SONAR_USER_HOME=/home/.sonar  

# Switch back to the sonarqube environment.  
WORKDIR $SONARQUBE_HOME  
USER sonarqube  

docker -составить:

version: '3.7'

services:
    sonarqube:
        build: .
        container_name: sonarqube
        ports:
            - 9000:9000
        networks:
            - sonarnet
        environment:
            - sonar.jdbc.url=jdbc:postgresql://db:5432/sonar
        volumes:
            - ./projects:/home/projects
            - sonarqube_conf:/opt/sonarqube/conf
            - sonarqube_data:/opt/sonarqube/data
            - sonarqube_logs:/opt/sonarqube/logs
            - sonarqube_extensions:/opt/sonarqube/extensions

    db:
        image: postgres:latest
        container_name: sonarqube_database
        networks:
            - sonarnet
        environment:
            - POSTGRES_USER=sonar
            - POSTGRES_PASSWORD=sonar
        volumes:
            - postgresql:/var/lib/postgresql
            - postgresql_data:/var/lib/postgresql/data

networks:
    sonarnet:
        driver: bridge

volumes:
    projects:
    sonarqube_conf:
    sonarqube_data:
    sonarqube_logs:
    sonarqube_extensions:
    postgresql:
    postgresql_data:

Я понимаю, что это проблема доступа, но я не понимаю, почему.
Есть идеи, почему это происходит?

1 Ответ

0 голосов
/ 19 февраля 2020

Решил мою проблему. В докер-файле:

RUN mkdir /home/.sonar
RUN chmod 777 /home/.sonar
ENV SONAR_USER_HOME=/home/.sonar
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...