Amazon ec2 从磁盘装入数据卷时,使用docker无法正确显示Sonar qualityprofile页面。
我正在设置Sonarqube服务器,希望使用正式的dockerised版本,但当我将数据文件夹作为卷装载以保留重启之间的状态时,QualityProfiles页面无法显示配置文件 不过,配置文件是存储的,正如我在“比较配置文件”下拉列表中看到的那样,它们在重新启动时被保留 我已经在Safari和Chrome上试过了,行为是一致的 日志中没有错误,而且据我所知,没有权限问题,因为数据正在写入。在不装载数据卷的情况下,它可以正常工作,但在重新启动时状态不会持久化,这是一个破坏交易的因素 还有谁解决了这个问题 这是我的docker compose配置Amazon ec2 从磁盘装入数据卷时,使用docker无法正确显示Sonar qualityprofile页面。,amazon-ec2,docker,docker-compose,sonarqube5.1,Amazon Ec2,Docker,Docker Compose,Sonarqube5.1,我正在设置Sonarqube服务器,希望使用正式的dockerised版本,但当我将数据文件夹作为卷装载以保留重启之间的状态时,QualityProfiles页面无法显示配置文件 不过,配置文件是存储的,正如我在“比较配置文件”下拉列表中看到的那样,它们在重新启动时被保留 我已经在Safari和Chrome上试过了,行为是一致的 日志中没有错误,而且据我所知,没有权限问题,因为数据正在写入。在不装载数据卷的情况下,它可以正常工作,但在重新启动时状态不会持久化,这是一个破坏交易的因素 还有谁解决了
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声纳]$docker版本
客户端版本:1.6.2
客户端API版本:1.18
Go版本(客户端):go1.3.3
Git提交(客户端):7c8fca2/1.6.2
OS/Arch(客户端):linux/amd64
服务器版本:1.6.2
服务器API版本:1.18
Go版本(服务器):go1.3.3
Git提交(服务器):7c8fca2/1.6.2
OS/Arch(服务器):linux/amd64
问题在于,sonarqube
图像没有为$sonarqube\u HOME/extensions
文件夹使用卷。第一次使用docker compose up时,sonar初始化数据库并安装3个插件:JAVA、GIT和SVN
第二次运行docker compose up
时,数据库已安装,但$SONARQUBE\u 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中应使用
卷
指令。我会提交给他们。这不会解决你的问题,但是我认为SONARQUBE\ujdbc\uurl=JDBC:postgresql://postgres:5432/postgres
应该是SONARQUBE\ujdbc\uurl=JDBC:postgresql://postgres:5432/sonar
和端口5432应该在db
容器的定义中公开,而不是sonarqube
。正确,这是一个复制粘贴错误。修复那个。。。5423端口将可访问sonarqube映像,因为其已链接,但是的,客户端也需要能够访问该端口,以便从那里导出该端口。他们有一种有趣的方式在sonarqube项目上重新发布“问题”-只拉请求:)我会做一个更新他们的文档..我注意到了中的相同行为。我正在继续调查,因为我对此也很感兴趣;)好地方!虽然规则显示在下拉列表中并且可以进行比较,但这有点奇怪,即使它们被禁用。。。
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