LoginSignup
3
4

OpenShift上にSonarQube+PostgresqlをDeployしてみる

Last updated at Posted at 2023-11-29

はじめに

  • この記事では、以下の流れを手順を追って記載します。
    • Red Hat OpenShift上にNameSpaceを作成する
    • PostgresqlをDeployする
    • SonarQube提供元が公開しているDockerfileを使って、SonarQubeをコンテナとしてDeploy、Postgresqlに接続してデータの永続化を実現する

記事を書いた理由

  • 何気に今からやろうとしていることを一から解説してくれてた記事が無くて困ったので、これからやる人にとって役立つものとして残すため

OpenShiftにNameSpaceを作成する

  • 便宜上、NameSpacesonarqubeとしていますが、お好きなものを設定してください。
  • コマンドラインでやる場合は以下のコマンド。
oc new-project sonarqube

image.png

PostgresqlをDeployする

  • 方法はおまかせします。Postgresqlのコンテナイメージを使うでもよし
  • 一応、本記事ではOpenShiftで最初から用意されているTemplateを使います。
    image.png
  • Postgresqlのパラメータとして重要なのは以下3つになります。
  • 便宜上、以下のようにしておりますが、なんらか任意の値を設定してください。
    • POSTGRESQL_USER: user
    • POSTGRESQL_PASSWORD: password
    • POSTGRESQL_DATABASE: sonarqubedb
      image.png
  • PostgresqlコンテナがDeployできました!
    image.png

SonarQubeの公式Dokcerfileを確認し、リポジトリをフォークする

  • まず、DcokerHubのSonarQubeページにアクセスします。
    image.png
  • SourceはGitHubで公開されているので、SonarSourceにアクセスします。
  • 本記事の執筆時点ではVer9とVer10が存在しているようですが、特にこだわりなければ10を選んでおきます。
  • 今回はサポートなしの無料で利用するため、Communityの中のDockerfileを使います。
    image.png
  • このDokcerfileをそのまま使ってSonarQubeコンテナをDeployすると、Postgresqlとの接続がされません。
  • ↓こんな感じのメッセージが出てデータが永続化されない
    スクリーンショット 2023-11-29 17.49.52.png
  • なので、少しいじります。リポジトリをご自身のアカウントにフォークしてください。

Dockerfileを編集する

  • Postgresqlの接続先URLを確認しましょう。
  • 先程DeployしたPostgresqlのServiceリソースの詳細画面でホスト名となっている部分を確認します。
  • ホスト名NameSpaceServiceの名称から機械的に決められ、今回の例ではURL形式は以下になります。
jdbc:postgresql://postgresql.sonarqube.svc.cluster.local:5432/sonarqubedb

image.png

  • フォークしてきたDockerfileに以下のようにPostgresqlの接続情報を追記します。
SONAR_JDBC_URL=jdbc:postgresql://postgresql.sonarqube.svc.cluster.local:5432/sonarqubedb \
SONAR_JDBC_USERNAME=user \
SONAR_JDBC_PASSWORD=password

スクリーンショット 2023-11-29 17.24.12.png

OpenShiftにSonarQubeコンテナをDeployする

  • 再びOpenShiftの画面です。+追加 > Gitからのインポート と進みます。
  • フォークしたご自身のリポジトリのClone URLをコピペしてください。
    image.png
  • コンテキストディレクトリーに、先程編集したDockerfileが格納されているディレクトリのPathを指定します。
    image.png
  • すると、自動でDockerfileを認識し、インポートストラテジーもDockerfileになります。
  • アプリ名 等はご自由にどうぞ!
  • SonarQubeのDockerfileでは、コンテナの9000番PortでExposeしているようです。
    image.png
  • 故にTargetport9000と変更してください。
    image.png
  • 「作成」をクリック!
  • DeployできたらRouteのURLをクリックしてSonarQubeのコンソールにアクセスしましょう!
    image.png
  • 初期の管理者ログイン情報は以下です。
    • Login: admin
    • Password: admin
  • 初期パスワード変更画面に従って、パスワードを変更してください。
  • おめでとうございます!ログインできました!Posgresqlに接続されてデータの永続化もされているので、下部に警告メッセージも出ていません!
    image.png
3
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
4