자신의 Mac에서 Docker에 Sonar 환경 만들기

원래, 제대로 CI 서버와 연계시켜 환경을 만들 수 있어 이야기입니다만, 자신용으로 조금 작은 것을 개발했을 때에 보고 싶을 때는 없습니다? 별로 없을까, 그런 것.
무료 웹 서비스를 사용해도 좋지만, 자신을 위해 PC에 환경을 만들어 보았습니다.

전제


  • docker를 사용할 수 있는 상태가 되어 있는 것.
  • 이하, boot2docker상에서 docker 컨테이너를 동작시키는 것이 전제의 설명.

  • boot2docker의 설치 등, docker를 사용할 준비는 여기를 봐 둔다. (이하는 mac의 사람용)
    htps : // / cs. 도 c r. 코 m/인 s 타치온/마 c/

    설치



    sonar 용 MySQL을 Docker에서 시작



    우선 MySQL을 넣어 둡니다. 자세한 내용은 여기를.
    htps : // 기주 b. 코 m / t 필 s / 도 c 케 r- 소나 r
    $ docker run -i -t -d -p 3306:3306 --name smysql tpires/sonar-mysql
    

    sonar를 Docker에서 시작



    그런 다음 sonar 본체를 움직이는 컨테이너를 시작합니다. 자세한 내용은 여기를.
    그건 그렇고, 9000은 다른 곳에서 사용하기 때문에 9090에서 포트 포워드를하고 있습니다. 아래 명령은 기본값이 아니므로 조심하십시오.
    htps : // 레기 스트리. 후 b. 두 c r. 코 m/우/m 자가 r/소나 r5/
    注記:
    このバージョンのsonarにバグがあることがわかったので、このDockerfileを使うのではなく、最下部に自分が追記したものを使ったほうが良いかもしれません。
    
    $ docker run -i -t -d --name sonar5 -p 9090:9000 --link smysql:db mzagar/sonar5
    

    동작 확인



    위의 컨테이너가 일어나면 다음과 같은 느낌이 들 수 있습니다.
    $ docker ps
    CONTAINER ID        IMAGE                       COMMAND                CREATED             STATUS              PORTS                                                NAMES
    429cbe15ccab        mzagar/sonar5:latest        "/opt/sonar/bin/linu   4 seconds ago       Up 3 seconds        0.0.0.0:9090->9000/tcp                               sonar5              
    a9cb3072e148        tpires/sonar-mysql:latest   "mysqld_safe"          15 minutes ago      Up 15 minutes       0.0.0.0:3306->3306/tcp                               smysql 
    

    아래 명령으로 boot2docker에 할당된 IP를 확인하고 브라우저에서 액세스하면 sonar 화면이 표시됩니다.
    $ boot2docker ip
    192.168.59.103
    

    초기 화면은 이런 느낌.



    기본 사용자는 admin/admin이므로 오른쪽 상단의 링크에서 로그인할 수 있습니다.

    사용해보기



    자신은 Java를 사랑하는 사람이기 때문에. .
    다음은 Maven을 사용하는 경우의 설정입니다.

    pom.xml 수정



    자신이 관리하는 Maven 프로젝트의 pom.xml을 수정합니다. properties 영역에 다음을 추가합니다.
    보통은 이하의 설정으로 갈 수 있다고 생각합니다만, boot2docker의 ip가 따로 되어 있거나, 커스터마이즈 하고 있는 경우는 적절히 변경합니다.
    <properties>
        <sonar.host.url>http://192.168.59.103:9090</sonar.host.url>
        <sonar.jdbc.url>jdbc:mysql://192.168.59.103:3306/sonar?useUnicode=true&amp;characterEncoding=utf8&amp;rewriteBatchedStatements=true</sonar.jdbc.url>
        <sonar.jdbc.username>sonar</sonar.jdbc.username>
        <sonar.jdbc.password>123qwe</sonar.jdbc.password>
    </properties>
    

    maven 실행



    일반적으로 sonar를 사용할 때와 마찬가지로 다음 명령을 실행합니다.
    $ mvn clean install -DskipTests=true
    $ mvn sonar:sonar
    

    대시보드 살펴보기



    조만간 대시보드를 다시 로드하면 뭔가 나옵니다.
    자신의 프로젝트 정보가 향상되었습니다. 죄송합니다.

    그리고는 스스로 좋아하는 대로 커스터마이즈 해 좋은 프로젝트 관리 라이프를!

    추가



    생각하면 sonar5는 자바 플러그인? 버그가있는 것처럼 NullPointerException으로 떨어지는 orz. (귀찮았기 때문에 시도하지 않지만 sonar-maven-plugin 버전을 오래된 버전으로 만들면 작동 할 수 있습니까?)
    sonar5.1에서 해결되었다는 보고서를 찾았으므로 Dockerfile을 자작하여 sonar5.1로 업데이트. 일단 잘 움직이게 되었으므로, 그 순서를 추기합니다.

    sonar5의 컨테이너 삭제



    컨테이너를 중지한 다음 삭제합니다.
    $ docker stop sonar5
    $ docker rm sonar5
    

    sonar5.1의 Docker 시작



    자작 Dockerfile은, DockerHub에 커밋 해 두었으므로, 아마 이하의 커멘드로 마음대로 pull 해 와, sonar5.1을 사용할 수 있게 된다고 생각합니다.
    여러 가지가 정말 편리한 세상이다. .
    $ docker run -i -t -d --name sonar5.1 -p 9090:9000 --link smysql:db todoken/sonar5.1
    

    이제 OK.
    덧붙여서, 낡은 버젼으로 run 시켜 버렸을 경우, 이하의 URL에 액세스 하면 자동적으로 DB를 업데이트해 줍니다.
    http://192.168.59.103:9090/setup
    

    일단 백업이라든지 취하는 편이 좋다고 생각합니다. 자세한 내용은 아래를 참조하십시오.
    htp // // cs. 소나 쿠베. 오 rg / ぢ sp y / 소나 R / 세츠 p + 안 d + 우 pg 등

    좋은 웹페이지 즐겨찾기