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