外部データベースを利用する
最終更新日: 2021年9月9日
R8 | R9
ここではデータベースとして MySQL を利用します。他のデータベースを利用する場合は、以下の手順を参考にしてください。
前提条件は次の通りです。
MySQL が含まれた Docker イメージをダウンロードします。
"mysql:5" は MySQL 公式の Docker イメージです。
docker portコマンドを用いて、起動した MySQL のポート番号を確認します。
例えば、次のような出力を得られます。
上の出力から、ホストのポート番号 32768 が MySQL で使われていることがわかりました。
mysql が用意しているコマンドラインプログラムを用いて、ホストから接続できることを確認します。
パスワードを尋ねられるので、入力します。
MySQL サーバに接続されていれば、データベースは正常に起動しています。
ホストから、Docker で実行されている MySQL に対して InitLoaderを実行し、初期データを作成します。
R8.5.6までの Wagby をご利用の場合、ホストの Wagby 環境でビルドしたアプリケーション wagbyapp/webapps/wagby/WEB-INF/export/conf/initdb.xml を編集します。(注:Dockerコンテナに含めたWagbyアプリケーションではありません。)
具体的には、ポート番号を、先ほど確認したポート番号に置換します。
修正前: 修正後:
R8.5.7以降の Wagby をご利用の場合、ホストの Wagby 環境でビルドしたアプリケーション wagbyapp/conf/catalina.properties を編集します。(注:Dockerコンテナに含めたWagbyアプリケーションではありません。)
具体的には、ポート番号を、先ほど確認したポート番号に置換します。
修正前: 修正後:
ホストの Wagby 環境で、init_db.batを実行します。MySQLのコンテナに対してテーブルが作成されます。これは1回だけ実行します。
ビルドした wagbyapp を含んだ Docker イメージを実行します。このとき --link オプションを指定します。
起動後は、ブラウザから次の URL を指定して動作を確認します。admin でログオンできれば、接続できています。
前提
Dockerイメージの準備
docker run -d -P --name=db -e MYSQL_USER=wagby -e MYSQL_PASSWORD=wagby -e MYSQL_DATABASE=wagbydb -e MYSQL_RANDOM_ROOT_PASSWORD=yes mysql:5 --character-set-server=utf8 --collation-server=utf8_general_ci
ポート番号の確認
docker port db
3306/tcp -> 0.0.0.0:32768
MySQL の接続テスト
"C:\Program Files\MySQL\MySQL Server 5.7\bin\mysql.exe" -P 32768 -u wagby -p wagbydb
Enter password: *****
初期データのインポート
initdb.xmlの修正 [R8.5.6以前]
url="jdbc:mysql://db/wagbydb?useUnicode=true&relaxautoCommit=true&zeroDateTimeBehavior=convertToNull"
url="jdbc:mysql://localhost:32768/wagbydb?useUnicode=true&relaxautoCommit=true&zeroDateTimeBehavior=convertToNull"
catalina.propertiesの修正 [R8.5.7以降]
WAGBY_DATASOURCE_URL=jdbc:mysql://db/wagbydb?useUnicode=true&relaxautoCommit=true&zeroDateTimeBehavior=convertToNull
WAGBY_DATASOURCE_URL=jdbc:mysql://localhost:32768/wagbydb?useUnicode=true&relaxautoCommit=true&zeroDateTimeBehavior=convertToNull
init_db.batの実行
cd wagbyapp/bin
init_db.bat
動作確認
docker run -d --rm -p 8888:8080 --name wagbyapp --link=db:db -v C:\Wagby-8.5.6\upload_dir:/usr/local/upload_dir -v C:\Wagby-8.5.6\export:/usr/local/export jasminesoft/wagbyapp