Windows環境にSonicのフロントエンドおよびバックエンドをDockerで構築する手順

1. MySQLのインストールと設定

まず、Sonicがデータを永続化するためにMySQLをセットアップします。以下の手順に従って、データベースサーバーを準備してください。

1.1 データベースの作成

MySQLをインストール後、コマンドプロンプトからMySQLのbinディレクトリに移動し、rootユーザーでログインします。例として、インストールパスが D:\MySQL の場合:

cd D:\MySQL\MySQL Server 8.0\bin
mysql -u root -p

ログイン成功後、UTF-8文字セットを使用してsonicデータベースを作成します。

CREATE DATABASE sonic 
CHARACTER SET utf8mb4 
COLLATE utf8mb4_general_ci;

1.2 外部接続を許可するための設定変更

MySQLの設定ファイル my.ini(通常は D:\MySQL\MySQL Server 8.0\my.ini)を開き、[mysqld] セクション内に次の行を追加します。

port=3306
bind-address=0.0.0.0

この設定により、他のマシンからの接続を受け付けるようになります。

1.3 MySQLサービスの再起動

コントロールパネルまたは「services.msc」から「MySQL80」サービスを再起動するか、管理者権限のコマンドプロンプトで以下を実行します。

net stop MySQL80
net start MySQL80

1.4 Windowsファイアウォールの設定

外部からの接続を可能にするため、TCPポート3306に対する入力規則を追加します。

  1. 「Windows Defender ファイアウォール」→「詳細設定」を開く
  2. 「入力規則」→「新規規則」を選択
  3. 「ポート」→「TCP」→「3306」を指定して許可

1.5 外部アクセス用のユーザー作成

MySQL内で任意のユーザーを作成し、リモートからのフルアクセス権限を付与します。

CREATE USER 'sonic_user'@'%' IDENTIFIED BY 'secure_password_123';
GRANT ALL PRIVILEGES ON sonic.* TO 'sonic_user'@'%';
FLUSH PRIVILEGES;

セキュリティ上、必要に応じて権限範囲を絞ることを推奨します。

2. Dockerのインストール

Docker Desktop for Windows をダウンロードし、インストールします。WSL2が有効であることを確認してください。

3. Dockerレジストリミラーの設定

中国国内などネットワーク制約がある環境では、ミラーを利用することでイメージ取得を高速化できます。Docker Desktopの設定から「Docker Engine」タブを開き、以下のJSONを適用します。

{
  "builder": {
    "gc": {
      "defaultKeepStorage": "20GB",
      "enabled": true
    }
  },
  "experimental": false,
  "registry-mirrors": [
    "https://docker-mirror.aigc2d.com"
  ]
}

設定後、Dockerを再起動します。

4. Sonicのコンテナ環境の構築

4.1 .envファイルの作成

作業ディレクトリに.envファイルを作成し、環境依存の設定値を記述します。IPアドレスは各自のホストマシンのIPv4アドレスに置き換えてください。

SONIC_SERVER_HOST=192.168.68.19
SONIC_SERVER_PORT=3000
SONIC_EUREKA_USERNAME=sonic
SONIC_EUREKA_PASSWORD=sonic
SONIC_EUREKA_PORT=8761

MYSQL_HOST=192.168.68.19
MYSQL_PORT=3306
MYSQL_DATABASE=sonic
MYSQL_USERNAME=sonic_user
MYSQL_PASSWORD=secure_password_123

SECRET_KEY=your_strong_secret_key_here
EXPIRE_DAY=14
PERMISSION_ENABLE=true
REGISTER_ENABLE=true
NORMAL_USER_ENABLE=true
LDAP_USER_ENABLE=false

4.2 docker-composeによる起動

同一ディレクトリにdocker-compose.ymlを配置した上で、以下のコマンドを実行します。

docker-compose up -d

これにより、Sonicの全コンポーネント(server、web、gatewayなど)がバックグラウンドで開始されます。

5. 起動後の確認事項

  • sonic-server-controller は一時的なエラーで停止することがありますが、自動再起動しないケースがあります。異常終了時は手動で再起動を検討してください。
  • MySQLにsonic_userで外部から接続できることを確認し、テーブルが自動生成されているかチェックしてください。
  • ブラウザから http://192.168.68.19:3000 にアクセスし、UIが表示されることを確認します。

タグ: MySQL Docker Sonic Windows docker-compose

10月12日 03:14 投稿