📌

HeartCore V12をDocker環境で動かしてみる

2022/03/02に公開

概要

商用CMSのHeartCore V12を用いて、手元環境での動作確認などが簡単にできるるよう、Docker環境を構築してみます。
なお、基本的な動作確認には十分ですが、HeartCore自体がコンテナ環境での動作保証をされているわけではないので、本番環境の構成としては使用しないようにしてください。

事前準備・必要なもの

以下のものを手元に用意します。

  • HeartCore V12パッケージ
  • HeartCore ライセンスシート

手順

パッケージモジュールの入手

HeartCore V12のパッケージを入手します。(HeartCoreWCMS_V12_0_0_55_0_JSP_CMS.zip

プロジェクトディレクトリの作成

自身のHOMEディレクトリの配下に、プロジェクト用のディレクトリを作成します。

ディレクトリ階層の例
/home/[username]/hcv12test/
shell
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に変更します。

shell
cd hcv12test
unzip HeartCoreWCMS_V12_0_0_55_0_JSP_CMS.zip
mv HeartCoreWCMS_V12_0_0_55_0_JSP_CMS src

Dockerfileの作成

以下の内容で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を作成します。

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を起動します。

shell
docker-compose up -d

データベースの作成

以下の手順でDBのコンテナに入り、HeartCore用のDBを作成します。

shell
docker-compose exec db bash
mysql -u root -p
create database admindb default character set utf8;

※途中でDBのパスワードを聞かれるのでrootと入力してEnterを押下します。

データベース接続設定および初期化を行う

以下のURLにアクセスし管理画面を開きます。

http://localhost/webadmin/

データベース接続設定の画面が開くので、以下の順序で設定します。

  1. MySQL Database Server-MySQL Database Serverを選択します。
  2. 画面上部のデータベース接続に次の内容を設定します。
mysql:com.mysql.jdbc.Driver:root:root@jdbc:mysql://db/admindb
  1. 保存ボタンを押下します。
  2. 初期テーブルが生成され、データベースのセットアップが完了します。

ライセンス設定を行う

続いてライセンスの画面で、ライセンス設定を行います。
事前に受領しているライセンスシートをもとに、必要なライセンスを設定します。
以下の内容を設定すると、基本的な動きが確認できます。

  • エンタープライズ エディション
  • データベース

設定したら保存を押下します。

スーパーユーザの設定

続いて、スーパーユーザーを設定します。
スーパーユーザーは、HCごとに1アカウントのみ登録できます。

例)
ユーザ名:admin
パスワード:admin
Eメール:admin@local.local
Eメールアドレス(デフォルト):admin@local.local

Eメール、Eメールアドレスを設定しないと設定が完了できないため、ダミー値でもよいので設定しておきます。

コンテンツのインポート

デフォルト設定するコンテンツを選択します。
基本的に、-empty-を選択します。

確認画面が開くので初期化とウェブサイトのインポートボタンを押下します。

少し待つとセットアップが完了し、画面上部のナビゲーションにメニューが表示されます。

以上で初期設定は完了です。

補足:Dockerコンテナを再度buildする場合

HeartCoreを使用していると、管理画面からコンテンツファイルを登録した場合などに、コンテナ内でファイルが作成されます。
その状態だと、docker-compose buildなどビルドコマンドを実行する場合、権限エラーが発生し再ビルドが行えない場合があります。
その場合は、ファイルの権限変更を行ってから、再ビルドを行うようにしてください。

shell
sudo chown -R $USER:$GROUPS db
sudo chown -R $USER:$GROUPS src

まとめ

以上の設定で、HeartCoreの基本的な動作の確認を行うことが可能になります。
ただし、実際のサイトでHeartCoreを使用するためには、まだいくつか設定が必要になりますので、別途紹介します。

Discussion