我正在设置 Sonarqube 服务器并希望使用官方的 dockerized 版本,但是当我将数据文件夹作为卷装载以保留重新启动之间的状态时,QualityProfiles 页面无法显示配置文件。
配置文件已存储,因为我可以在“比较配置文件”下拉列表中看到它们,并且它们在重新启动时会保留。
我在 Safari 和 Chrome 上尝试过,行为是一致的。
日志中没有错误,而且据我所知,没有权限问题,因为正在写入数据。在不安装数据卷的情况下,它可以正常工作,但重新启动时状态不会持续,这是一个破坏性的事情..
还有人遇到这个问题并设法解决它吗?
这是我的 docker-compose 配置
sonarqube:
image: sonarqube:5.1
links:
- db:postgres
ports:
- "9000:9000"
- "9092:9092"
- "5432:5432"
environment:
- SONARQUBE_JDBC_URL=jdbc:postgresql://postgres:5432/sonar
- SONARQUBE_JDBC_PASSWORD=sonar
- SONARQUBE_JDBC_USERNAME=sonar
volumes:
- /data/sonar:/opt/sonarqube/data
privileged: true
db:
image: postgres
environment:
- POSTGRES_PASSWORD=sonar
- POSTGRES_USER=sonar
volumes:
- /data/postgres:/var/lib/postgresql/data
privileged: true
以及 docker 版本
[ec2-user@xxxxxxxxx sonar]$ docker version
Client version: 1.6.2
Client API version: 1.18
Go version (client): go1.3.3
Git commit (client): 7c8fca2/1.6.2
OS/Arch (client): linux/amd64
Server version: 1.6.2
Server API version: 1.18
Go version (server): go1.3.3
Git commit (server): 7c8fca2/1.6.2
OS/Arch (server): linux/amd64
最佳答案
问题在于 sonarqube
镜像未使用 $SONARQUBE_HOME/extensions
文件夹的卷。第一次使用 docker-compose up 时,sonar 会初始化数据库并安装 3 个插件:JAVA、GIT 和 SVN。
第二次运行docker-compose up
时,数据库已安装,但$SONARQUBE_HOME/extensions/plugins
文件夹为空。因此,JAVA、GIT 和 SVN 不再安装,并且 sonarqube
禁用了规则。
这个docker-compose.yml
文件按预期工作。
sonarqube:
image: sonarqube:5.1.1
links:
- db
ports:
- "9000:9000"
environment:
- SONARQUBE_JDBC_URL=jdbc:postgresql://db:5432/sonar
volumes:
- /data/sonar/data:/opt/sonarqube/data
- /data/sonar/extensions:/opt/sonarqube/extensions
db:
image: postgres
environment:
- POSTGRES_USER=sonar
- POSTGRES_PASSWORD=sonar
ports:
- "5432:5432"
volumes:
- /data/postgres:/var/lib/postgresql/data
使用docker-compose rm
后它仍然有效,并且您将能够添加其他插件。
构建镜像的 Dockerfile 中应使用 VOLUME
指令。我会把它提交给他们。
关于amazon-ec2 - 从磁盘安装数据卷时,使用 docker 时,声纳质量配置文件页面无法正确显示。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31288681/