我正在使用Docker创建一个Sonarqube环境,但是当我运行扫描仪时,出现了一个错误。
我将扫描器直接放入容器中:
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
信息:项目根配置文件:/home/ Project /test/sonar-project.properties
信息: SonarQube扫描仪4.2.0.1873
信息:Java11.0.3 AdoptOpenJDK (64位)
信息: Linux 4.9.184-linuxkit amd64
信息:
信息:执行失败
信息:
信息:总时间:0.364秒
信息:最终内存:2米/10米
信息:
错误: SonarQube扫描程序执行过程中的错误
java.lang.IllegalStateException:无法创建用户缓存:/home/..sonar/cache
成本-成本-在org.sonarsource.scanner.api.internal.cache.FileCache.createDir(FileCache.java:147)的比较
成本-成本-在org.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(JarDownloaderFactory.java:42)的比较
成本-成本-在org.sonarsource.scanner.api.internal.IsolatedLauncherFactory.createLauncher(IsolatedLauncherFactory.java:68)的比较
成本-成本-在org.sonarsource.scanner.api.EmbeddedScanner.doStart(EmbeddedScanner.java:185)的比较
成本-成本-在org.sonarsource.scanner.api.EmbeddedScanner.start(EmbeddedScanner.java:123)的比较
成本-成本-在org.sonarsource.scanner.cli.Main.execute(Main.java:73)的比较
成本-成本-在org.sonarsource.scanner.cli.Main.main(Main.java:61)的比较
由: java.nio.file.AccessDeniedException: /home/..sonar/cache引起
( java.base/sun.nio.fs.UnixException.translateToIOException(Unknown源)的准准性
( java.base/sun.nio.fs.UnixException.rethrowAsIOException(Unknown源)的准准性
( java.base/sun.nio.fs.UnixException.rethrowAsIOException(Unknown源)的准准性
( java.base/sun.nio.fs.UnixFileSystemProvider.createDirectory(Unknown源)的准准性
( java.base/java.nio.file.Files.createDirectory(Unknown源)的准准性
( java.base/java.nio.file.Files.createAndCheckIsDirectory(Unknown源)的准准性
( java.base/java.nio.file.Files.createDirectories(Unknown源)的准准性
成本-成本-在org.sonarsource.scanner.api.internal.cache.FileCache.createDir(FileCache.java:145)的比较
.9
下面是我在码头撰写中使用的dockerfile:
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
船坞-组成:
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:
我知道这是一个访问问题,但我不明白为什么。
知道为什么会发生这种事吗?
发布于 2020-02-19 01:34:19
解决了我的问题。在码头文件中:
RUN mkdir /home/.sonar
RUN chmod 777 /home/.sonar
ENV SONAR_USER_HOME=/home/.sonar
https://stackoverflow.com/questions/60268228
复制相似问题