HeartCore V12をDocker環境で動かしてみる
概要
商用 CMS の HeartCore V12 を用いて、手元環境での動作確認などが簡単にできるるよう、Docker 環境を構築してみます。
なお、基本的な動作確認には十分ですが、HeartCore 自体がコンテナ環境での動作保証をされているわけではないので、本番環境の構成としては使用しないようにしてください。
事前準備・必要なもの
以下のものを手元に用意します。
- HeartCore V12 パッケージ
- HeartCore ライセンスシート
手順
パッケージモジュールの入手
HeartCore V12 のパッケージを入手します。(HeartCoreWCMS_V12_0_0_55_0_JSP_CMS.zip
)
プロジェクトディレクトリの作成
自身の HOME ディレクトリの配下に、プロジェクト用のディレクトリを作成します。
/home/[username]/hcv12test/
cd ~
mkdir hcv12test
パッケージモジュール親パッケージの展開
HeartCoreWCMS_V12_0_0_55_0_JSP_CMS.zip フォルダを zip 解凍します。
内容は以下のようになっています。
1_HeartCoreCMSモジュール本体
2_検索オプション_Linux版
3_マニュアル
パッケージモジュールの配置
解凍したファイルのうち、1_HeartCoreCMSモジュール本体\HeartCoreWCMS_V12_0_0_55_0_JSP_CMS.zip
を用いてインストールを行います。
以下の位置になるように上記のパッケージモジュールを配置します。
/home/[username]/hcv12test/HeartCoreWCMS_V12_0_0_55_0_JSP_CMS.zip
zip フォルダの解凍
zip を解凍しディレクトリ名をsrc
に変更します。
cd hcv12test
unzip HeartCoreWCMS_V12_0_0_55_0_JSP_CMS.zip
mv HeartCoreWCMS_V12_0_0_55_0_JSP_CMS src
Dockerfile の作成
以下の内容で Dockerfile を作成します。
FROM tomcat:9.0
RUN sed -i 's!redirectPort="8443" />!redirectPort="8443" useBodyEncodingForURI="true" />!g' /usr/local/tomcat/conf/server.xml
WORKDIR /usr/local/tomcat
補足
上記のRUN sed -i 's!redirectPort="8443" />!redirectPort="8443" useBodyEncodingForURI="true" />!g' /usr/local/tomcat/conf/server.xml
の部分ですが、Tomcat のデフォルト設定だと、HeartCore の検索欄で日本語検索したときに、文字化けが発生しますので、Tomcat の設定ファイルの、<Connector port="8080"
ディレクティブに対して、useBodyEncodingForURI
設定の追加を、コンテナ起動時に行っています。
docker-compose.yml の作成
以下の内容で docker-compose.yml を作成します。
version: "3"
services:
app:
build: ./
volumes:
- ./src:/usr/local/tomcat/webapps/ROOT
ports:
- "80:8080"
db:
image: mysql:5.7
command: --default-authentication-plugin=mysql_native_password
environment:
MYSQL_ROOT_PASSWORD: root
volumes:
- ./db/mysql_data:/var/lib/mysql
docker の起動
以下のコマンドを実行し、docker を起動します。
docker-compose up -d
データベースの作成
以下の手順で DB のコンテナに入り、HeartCore 用の DB を作成します。
docker-compose exec db bash
mysql -u root -p
create database admindb default character set utf8;
※途中で DB のパスワードを聞かれるのでroot
と入力して Enter を押下します。
データベース接続設定および初期化を行う
以下の URL にアクセスし管理画面を開きます。
http://localhost/webadmin/
データベース接続設定の画面が開くので、以下の順序で設定します。
-
MySQL Database Server
-MySQL Database Server
を選択します。 - 画面上部の
データベース接続
に次の内容を設定します。
mysql:com.mysql.jdbc.Driver:root:root@jdbc:mysql://db/admindb
-
保存
ボタンを押下します。 - 初期テーブルが生成され、データベースのセットアップが完了します。
ライセンス設定を行う
続いてライセンス
の画面で、ライセンス設定を行います。
事前に受領しているライセンスシートをもとに、必要なライセンスを設定します。
以下の内容を設定すると、基本的な動きが確認できます。
- エンタープライズ エディション
- データベース
設定したら保存
を押下します。
スーパーユーザの設定
続いて、スーパーユーザーを設定します。
スーパーユーザーは、HC ごとに 1 アカウントのみ登録できます。
例)
ユーザ名:admin
パスワード:admin
E メール:admin@local.local
E メールアドレス(デフォルト):admin@local.local
E メール、E メールアドレスを設定しないと設定が完了できないため、ダミー値でもよいので設定しておきます。
コンテンツのインポート
デフォルト設定するコンテンツを選択します。
基本的に、-empty-
を選択します。
確認画面が開くので初期化とウェブサイトのインポート
ボタンを押下します。
少し待つとセットアップが完了し、画面上部のナビゲーションにメニューが表示されます。
以上で初期設定は完了です。
補足:Docker コンテナを再度 build する場合
HeartCore を使用していると、管理画面からコンテンツファイルを登録した場合などに、コンテナ内でファイルが作成されます。
その状態だと、docker-compose build
などビルドコマンドを実行する場合、権限エラーが発生し再ビルドが行えない場合があります。
その場合は、ファイルの権限変更を行ってから、再ビルドを行うようにしてください。
sudo chown -R $USER:$GROUPS db
sudo chown -R $USER:$GROUPS src
まとめ
以上の設定で、HeartCore の基本的な動作の確認を行うことが可能になります。
ただし、実際のサイトで HeartCore を使用するためには、まだいくつか設定が必要になりますので、別途紹介します。
Discussion