【備忘録】RHEL 環境でのSW360コンテナ構築手順

【備忘録】RHEL 環境でのsw360コンテナ構築手順(バナーのタイトル)

こんにちは。サイオステクノロジーの橋本です。

SW360を構築した際に非常に手間がかかったので(2営業日)、備忘録として手順をまとめ、ブログとして公開します。

⚠️ 注意事項 本記事は必要最低限の項目を設定して立ち上げているだけですので、セキュリティ面などに懸念が残ります。利用の際は自己責任の元、必要に応じて設定やセキュリティを見直してください。

環境

  • OS : RHEL

  • podman : podman-5.4.0-12.el9_6.x86_64

  • podman-compose : podman-compose-1.5.0-2.el9.noarch

  • SW360 : v1.0.0-16-g038175e7

参考:基本的な手順(公式) Deploy 2.0 Containers | SW360

公式の手順は「自端末(localhost)にSW360を構築すること」を前提としており、そのままでは外部(自端末以外)からのアクセスがまったくできません。そのため、外部からIPアドレスでアクセスできるように各種設定ファイルを修正していきます。

構築手順

1. ソースのダウンロードとネットワーク作成

まずはGitHubからソースコードを取得し、Podmanネットワークを作成します。

Bash
# cd /opt/
# git clone https://github.com/eclipse-sw360/sw360-frontend.git
Cloning into 'sw360-frontend'...
remote: Enumerating objects: 32749, done.
remote: Counting objects: 100% (2349/2349), done.
remote: Compressing objects: 100% (741/741), done.
remote: Total 32749 (delta 2042), reused 1613 (delta 1607), pack-reused 30400 (from 4)
Receiving objects: 100% (32749/32749), 14.61 MiB | 22.87 MiB/s, done.
Resolving deltas: 100% (21359/21359), done.

# cd sw360-frontend
# podman network create sw360net
sw360net

# git describe --tags
v1.0.0-16-g038175e7

 

2. 設定ファイルの修正

外部からのアクセスを許可するため、各設定ファイルの localhost をサーバーのIPアドレス(以下 ${IP_address} と表記)に変更し、いくつかの起動オプションを追加します。 ※ 実際の作業時は、${IP_address} の部分をご自身のサーバーIPに置き換えて設定してください。

config/nginx/.env.web

  • 9行目

    • 修正前:SERVER_DOMAIN=localhost

    • 修正後:SERVER_DOMAIN=${IP_address}

config/front-end/.env.frontend

  • 10行目

    • 修正前:NEXTAUTH_URL=https://localhost

    • 修正後:NEXTAUTH_URL=https://${IP_address}

  • 14行目

    • 修正前:NEXT_PUBLIC_SW360_API_URL=https://localhost

    • 修正後:NEXT_PUBLIC_SW360_API_URL=https://${IP_address}

config/keycloak/.env.keycloak

  • 27行目

    • 修正前:KC_HOSTNAME_URL=https://localhost/kc

    • 修正後:KC_HOSTNAME_URL=https://${IP_address}/kc

  • 29行目

    • 修正前:(なし)

    • 修正後:KC_HOSTNAME_STRICT_HTTPS=false (※追記)

config/sw360/.env.backend

  • 45行目

    • 修正前:SW360_SECURITY_JWT_ISSUERS_0_ISSUER_URI=http://localhost:8080/authorization

    • 修正後:SW360_SECURITY_JWT_ISSUERS_0_ISSUER_URI=http://${IP_address}:8080/authorization

  • 46行目

    • 修正前:SW360_SECURITY_JWT_ISSUERS_1_ISSUER_URI=https://localhost/kc/realms/sw360

    • 修正後:SW360_SECURITY_JWT_ISSUERS_1_ISSUER_URI=http://${IP_address}:8083/realms/sw360

  • 82行目

    • 修正前:SW360_THRIFT_SERVER_URL=http://localhost:8080

    • 修正後:SW360_THRIFT_SERVER_URL=http://${IP_address}:8080

  • 83行目

    • 修正前:SW360_BASE_URL=http://localhost:8080

    • 修正後:SW360_BASE_URL=http://${IP_address}:8080

  • 84行目

    • 修正前:SW360_FRONTEND_URL=http://localhost:3000

    • 修正後:SW360_FRONTEND_URL=http://${IP_address}:3000

docker-compose.yml

  • 42行目(ヘルスチェックのタイムアウト調整)

    • 修正前:start_period: 60s

    • 修正後:start_period: 600s

  • 88行目

    • 修正前:NEXT_PUBLIC_SW360_API_URL: ${NEXT_PUBLIC_SW360_API_URL:-https://localhost}

    • 修正後:NEXT_PUBLIC_SW360_API_URL: ${NEXT_PUBLIC_SW360_API_URL:-http://${IP_address}}

  • 90行目

    • 修正前:NEXTAUTH_URL: http://localhost

    • 修正後:NEXTAUTH_URL: http://${IP_address}

  • 106行目付近(Keycloakの起動コマンド追加)

    • 修正前:

      YAML
      keycloak:
        image: "ghcr.io/eclipse-sw360/sw360/keycloak:26.6.4"
        container_name: keycloak
        restart: unless-stopped
        env_file: ./config/keycloak/.env.keycloak
      

    • 修正後:command: start --http-enabled=true を追加

      YAML
      keycloak:
        image: "ghcr.io/eclipse-sw360/sw360/keycloak:26.6.4"
        container_name: keycloak
        command: start --http-enabled=true
        restart: unless-stopped
        env_file: ./config/keycloak/.env.keycloak
      

3. コンテナの起動

上記の修正が完了したら、podman-compose を使って起動します。 初回の起動には10~15分程度要します。

Bash
# podman-compose -f docker-compose.yml up -d

 

しばらく待った後、podman ps コマンドで全てのステータスが (healthy) になることを確認しましょう。

Bash
[root@ip-172-31-15-70 sw360-frontend]# podman ps
CONTAINER ID  IMAGE                                      COMMAND               CREATED        STATUS                  PORTS                                                 NAMES
c6547edcc86b  docker.io/library/couchdb:3.5-nouveau      /usr/bin/java -se...  5 minutes ago  Up 4 minutes            0.0.0.0:5987-5988->5987-5988/tcp                      couchdb_nouveau
b84fc441690a  docker.io/library/postgres:18.4-alpine     postgres              5 minutes ago  Up 4 minutes (healthy)  0.0.0.0:5432->5432/tcp                                postgres
bbaf3539a33e  docker.io/library/couchdb:3.5              /opt/couchdb/bin/...  5 minutes ago  Up 4 minutes (healthy)  0.0.0.0:5984->5984/tcp, 4369/tcp, 9100/tcp            couchdb
d1955264c00d  ghcr.io/eclipse-sw360/sw360/keycloak:26.7.0 start --http-enab... 4 minutes ago  Up 4 minutes (healthy)  0.0.0.0:8083->8083/tcp, 8080/tcp, 8443/tcp, 9000/tcp  keycloak
f35d08b298ac  ghcr.io/eclipse-sw360/sw360:main                                 4 minutes ago  Up 4 minutes (healthy)  0.0.0.0:8080->8080/tcp                                sw360
722b25096736  ghcr.io/eclipse-sw360/sw360-frontend:main  node server.js        4 minutes ago  Up 4 minutes            0.0.0.0:3000->3000/tcp                                sw360-frontend
e4aeff7140e0  docker.io/library/nginx:1.31.3-trixie      /bin/sh -cexp...      4 minutes ago  Up 4 minutes            0.0.0.0:443->443/tcp, 80/tcp                          sw360_web

 

アクセス方法

ブラウザから https://${IP_address} でアクセス可能です。

ログインユーザとパスワードについては、公式リポジトリ内の README_DOCKER.md に記載されているデフォルトの Basic Auth 情報を参照してください。 🔗 SW360 Basic / Built-in Basic Auth 認証情報

既知の不具合について(2026年8月現在)

現在、Keycloak でのログイン後にホーム画面で NEXT_HTTP_ERROR_FALLBACK;404 のエラーが表示される既知の不具合が確認されています。

詳細や進捗については、以下の GitHub Issue をご確認ください。

ご覧いただきありがとうございます! この投稿はお役に立ちましたか?

役に立った 役に立たなかった

0人がこの投稿は役に立ったと言っています。
エンジニア募集中!

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です