iDempiereとJPiereのDocker上での環境構築

# iDempiere-Fanサイトオープン

皆様、こんにちは。

このウェブサイトでは、オープンソースのERPアプリケーションであるiDempiereおよびJPiereに焦点を当て、開発者視点での環境構築に関する情報をお届けしていきます。
また、Java言語を使用したカスタマイズやブロックチェーンとの連携に関する情報も随時掲載していく予定です。どうぞよろしくお願いいたします。

今回の第1回の投稿では、タイトル通りにJPiereアプリをDockerで構築してみた経験を共有したいと思います。

## iDempiere/JPiereとは
公式サイトはこちらから

https://www.compiere-distribution-lab.net/jpiere-lab/

JPiereは、公式サイトにて
**オープンソースのERP iDempiereの日本商習慣対応ディストリビューション**
というように定義されています。

## iDempiere/JPiereシステム要件
OSは、Windows用とLinux用が提供されています。
情報を管理するデータベースは、PostgreSQLを使用します。
ライブラリとして、JavaVMが必要です。Java17もしくはJava11にて動作します。

## 今回やってみること
iDempiere/JPiere本体とプラグインをダウンロードして、Windows上Docker環境でJPiereを動かしてみます。

## iDempiere/JPiere本体とライブラリのダウンロード
今回は、JPiere Ver10を使用してみました。
以下のサイトからダウンロードします。
https://sourceforge.net/projects/jpiere/files/JPiere-latest/

* ダウンロード対象ファイル
JPiereServer10.gtk.linux.x86_64_20230809.zip
ExpDat.jar

::: note info
Dockerファイルから直接JPiereServer10やExpDat.jarファイルをダウンロードするようにした場合、エラーが発生しなりなど、うまくローカルにイメージをコピーすることができませんでした。
今回は、あらかじめダウンロードしたファイルをGoogle Drive上に配置しなおして、DockerファイルではGoogle Drive上に配置したファイルをダウンロードするようにしました。
:::

## iDempiere/JPiere本体とライブラリをGoogle Driveへアップロード
Dockerfileから参照できるように、Google DriveにアップロードしそのファイルIDをメモします。
ここでアップロードしたファイルは、共有参照を有効にしておきます。
今回の検証では、わたしのGoogleDrive上にアップロードしました。

それぞれのファイルIDは以下：
* JPiereServer10.gtk.linux.x86_64_20230809.zip
 ```1T1fcXdXpjj1hB3eHG7xkYQJQ9n8oYWVr```
* ExpDat.jar
```1wHJPZAJqSyRWNENdBo1MDMLhbK3DNjI2```

上記のファイルIDをDockerfileに埋め込みます。

## iDempiere/JPiere Dockerfileの準備
Dockerfileの定義は、iDempiereのGithub上に公開されていましたので、こちらを参考に作成しました。

https://github.com/idempiere/idempiere-docker/tree/master/10

iDempiereの構築手順に加え、JPiereで動作に必要となるExpDat.jarダンプファイルを展開する処理を追加します。
なお、今回のDockerイメージとしてUbuntu20上にJPiere関連のプログラムを展開するようにしました。
docker-entrypoint.shも併せて定義します。

## Dockerfileなどのファイル群
今回私が検証するために作成したDockerのファイル群をGithub上に公開していますので、参考にしていただければと思います。

## Dockerイメージの作成とサービスの実行
* WindowsのDockerDesktopサービスを起動しておきます。
* Dockerコンテナをビルドします。
```shell-session
mkdir jpieredocker
cd jpieredocker
git clone https://github.com/qiita-mobileapps/JPiereDocker .
docker build ./ -f Dockerfile -t jpiere:10
```
上記コマンドが正常に終了すると、Docker上に「jpiere TAG 10」が展開されます。私の環境で約10分でビルドが完了しました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3514304/cca67776-fb8b-dee5-10da-fe449dd708b1.png)

* サービスを起動します。
```shell-session
docker-compose -f docker-stack.yml up
```

* サービスの起動状態をDockerDesktopから確認します。
コンテナメニューにおいて、2種類のサービスが起動されていれば無事起動完了です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3514304/5d42fa9c-13bd-1cb8-d96f-49ee79de588c.png)

## ブラウザからアクセス
https://127.0.0.1:8443/webui
をブラウザから開きます。ログイン画面が表示されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3514304/3faea819-ad47-782f-af99-d6cd20fee176.png)

JPiereサイトで案内されているアカウントを使用してログインします。
今回はこちらのユーザを使用してログインします。
**メール：** superuser(at)oss-erp.co.jp
**パスワード：** System
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3514304/4f36f2a0-e690-fee1-c2b1-b295f8ef92fb.png)
OKボタンをクリックすると、さらに資格情報をしている画面が表示されます。
デフォルトのまま再度OKボタンをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3514304/26ad6ad5-440d-12fd-8eb8-fc9730b8df11.png)
ダッシュボードが表示されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3514304/39fb706d-1fd0-5406-c5c0-2881473d29fe.png)


サービスの起動とログイン手順は以上です。

## 次回は
iDempiere/JPiere本体のEclipseを用いた[開発環境を構築](https://qiita.com/idempiere-fan/items/2d8fd80d2f80f2478e4f)したいと思います。