LoginSignup
4
1

More than 1 year has passed since last update.

JPiereをdocker-composeで試してみる

Last updated at Posted at 2021-06-05

JPiereをdocker-composeで試してみる

JPiere(ジェイピエール)とはオープンソースのERP iDempiereの日本商習慣対応ディストリビューションです。GPLv2ライセンスのもと、その機能のほとんどを無償で使えるERPパッケージのようなので手っ取り早く、ローカルで使うためにdocker-composeで試してみます。

急いでいる人

JPiereサーバのDockerコンテナをビルドして、docker-composeで起動。

githubからDockerfile、docker-compose.ymlなどを取得

git clone https://github.com/madilloar/PRJ_JPiere.git

Dockerコンテナのビルド

docker build ./ -f DockerJpiere -t jpiere:8.21

ビルドに失敗したときにコンテナに入って原因追及。

docker run -it --user root --name jpiere {コンテナID} bash -p

docker-composeで起動 

Corei5 8MB Windows10 WSL2のdocker環境で起動までに10分程度かかる。

docker-compose up -d

起動状況をログ確認

docker logs -f jpiere_idempiere_1

次のようなメッセージが最後に出ていたら起動完了。

略
11:59:41.010 PackInApplicationActivator.processFilePath: *** Creating list from folder migration/i4.1z [93]
11:59:41.011 PackInApplicationActivator.processFilePath: *** Creating list from folder migration/i7.1z [93]
11:59:41.016 AbstractActivator.setSummary: No zip files to process [93]

ログに次のようなエラーが出ていても問題なし

バージョンエラーメッセージの例

19:02:52.425-----------> DB.isBuildOK: Build Version Error

The program assumes build version 8.2.0.202101020630, but database has build version ${env.ADEMPIERE_VERSION} 20080428-1232.
This is likely to cause hard to fix errors.
Please contact administrator. [1]

次のURLを参考。【iDempiere Lab】サーバ起動時のDBビルドバージョンエラーについて

このDB.javaのisBuildOK()メソッド内では、文字列情報を比較("Build DB"の値と"Build Cl"の値を比較)して異なっていたらこのメッセージが出力されるようにしているだけで、実際にデータベースのスキーマ情報を精査しているわけではありません。

バリデーションエラーメッセージの例

java.lang.Exception: Failed to load model validator class jpiere.plugin.groupware.base.JPierePluginGroupwareModelValidator
        at org.adempiere.base.DefaultModelValidatorFactory.newModelValidatorInstance

java.lang.Exception: Failed to load model validator class jpiere.base.plugin.org.adempiere.base.JPiereBankStatementLineModelValidator
        at org.adempiere.base.DefaultModelValidatorFactory.newModelValidatorInstance(DefaultModelValidatorFactory.java:64)

以下数件。

次のURLを参考。JPiereコンフィギュレーションズの使用上の注意

JPiere ベースプラグインではモデルバリデータを使用しています。モデルバリデータに設定されているクラスが存在しないとエラーになりますので、JPiereベースプラグインを使用しない場合には、使用しないモデルバリデータを非アクティブにする必要があります。AD_ModelValidatorテーブルの下記の名称(Name)のデータをSQLで非アクティブ(IsActive='N')にして下さい。

ログイン

次のURLでログインします。

ユーザとパスワード

参考URL:JPiereへのログイン

Dockerコマンドメモ

実行中のコンテナに入る

docker exec -it --user root {コンテナ名} bash -p

docker-compose 起動、ログ確認、停止、コンテナ終了

docker-compose up -d
docker log -f {コンテナ名}
docker-compose stop
docker-compose down

止まってしまったコンテナに入って原因追及

docker commit {問題のコンテナID} {新たなコンテナ名}
docker run --rm -it {新たなコンテナ名} sh

はまったところ

docker-composeで試す前に、手動でインストールを試そうとしてはまったこと。

shellの改行文字がCRLF

OSDN > Find Software > Office/Business > CRM > JPiere > Download File List > Package JPiere Install Package > Release JPiere82 - 20210101からインストール用のzipとPostgreSQLに登録するdmpファイルをダウンロードして、手順に従って、console-setup.shを動かしたのですが、

$ ./console-setup.sh
-bash: ./console-setup.sh: /bin/sh^M: bad interpreter: No such file or directory

となってしまいました。shellファイルの改行文字がCRLFになっている。
気になってgrepしたら軒並み改行文字がCRLF。手順では、sh console-setup.shとなっているので、改行文字がCRLFでもよいのだけれど、気持ち悪いので、LFに変える。

$ find . -type f -name '*.sh' | xargs file | grep CRLF | awk -F: '{print $1}' | xargs dos2unix

実行可能ファイルの実行権限がついていない

$ ./console-setup.sh
Setup idempiere Server
: not foundup.sh: 4:
console-setup.sh: 6: ./idempiere: Permission denied
略

改行文字同様、他の実行可能ファイル、shellに実行権限がついていない。

$ chmod u+x idempiere
$ find . -type f -name '*.sh' | xargs chmod u+x

JPiereサーバとPostgreSQLサーバをそれぞれを起動してみる

前提

上記DockerJpiereファイルでDockerコンテナを作成済のこと。

JPiereとPostgresqlをつなぐdocker networkを作成

docker network create jpiere_net

PostgreSQLサーバを起動

docker run -d --name postgres --net jpiere_net -p 5432:5432 -e POSTGRES_PASSWORD=postgres postgres:12

JPiereサーバを起動

docker run -it --name jpiere -p 8080:8080 --net jpiere_net \
  -e DB_HOST=postgres \
  -e DB_PORT=5432 \
  -e DB_NAME=idempiere \
  -e DB_USER=adempiere \
  -e DB_PASS=adempiere \
  -e DB_ADMIN_PASS=postgres \
  jpiere:8.21

JPiereサーバとPostgreSQLサーバがネットワークにつながっているか確認

docker network inspect jpiere_net

参考URL

https://hub.docker.com/r/idempiereofficial/idempiere

https://github.com/idempiere/idempiere-docker

https://mebee.info/2020/11/29/post-17806/

https://www.compiere-distribution-lab.net/jpiere-lab/install/jpiere7-1/

4
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
1