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に対する入力規則を追加します。
- 「Windows Defender ファイアウォール」→「詳細設定」を開く
- 「入力規則」→「新規規則」を選択
- 「ポート」→「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が表示されることを確認します。