从磁盘安装数据卷时,使用docker无法正确显示Sonar qualityprofile页面。

时间:2015-07-08 09:30:08

标签: amazon-ec2 docker docker-compose sonarqube5.1

我正在设置一个Sonarqube服务器,并希望使用官方的dockerised版本,但是当我将数据文件夹作为卷挂载以保持重新启动之间的状态时,QualityProfiles页面无法显示配置文件。

虽然存储了配置文件,但我可以在“比较配置文件”下拉菜单中看到它们,并在重新启动时保留它们。

我尝试过Safari和Chrome,行为一致。

日志中没有错误,据我所知,由于正在编写数据,因此没有任何权限问题。没有安装数据卷它工作正常,但重启时状态不会持久,这是一个交易破坏者..

有这个问题的其他人设法解决了吗?

这是我的docker-compose config


  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

码头版本

[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

1 个答案:

答案 0 :(得分:2)

问题是sonarqube图片不使用$SONARQUBE_HOME/extensions文件夹的卷。第一次使用docker-compose up时,声纳初始化数据库并安装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指令。我会把它提交给他们。