从磁盘装载数据卷时,使用 docker 无法正确显示 Sonar qualityprofile 页面。
Sonar qualityprofile page does not display correctly using docker when data volume is mounted from disk.
我正在设置 Sonarqube 服务器并想使用官方 dockerised 版本,但是当我将数据文件夹作为卷装载以保留重启之间的状态时,QualityProfiles 页面无法显示配置文件.
配置文件已存储,正如我在 'compare profiles' 下拉列表中看到的那样,并且它们在重新启动时会保留。
我在 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 版本
<pre>
[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
指令。我会提交给他们。
我正在设置 Sonarqube 服务器并想使用官方 dockerised 版本,但是当我将数据文件夹作为卷装载以保留重启之间的状态时,QualityProfiles 页面无法显示配置文件.
配置文件已存储,正如我在 'compare profiles' 下拉列表中看到的那样,并且它们在重新启动时会保留。
我在 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 版本
<pre>
[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
指令。我会提交给他们。