DockerにIRISを構築する簡単なチュートリアル
開発者の皆さんこんにちは。 これは筆者がDocker上でIRISを動かす時の、構築手順を示した備忘録です。 以前投稿した「Dockerを利用した開発環境下でのIRISへのSSL接続方法」と「IRISサーバーのバックアップと再構築の手順」も合わせて参考にして頂けると良いと思います。
筆者環境
本ドキュメントは筆者の環境に合わせた内容となりますので、以下の環境下でのドキュメントとなります。
- ホストOS:macOS Sonoma 14.0
- CPU:Apple M2 Pro
- Docker:v24.0.6(Docker Desktop for Mac v4.24.2)
- IRIS:IRIS for UNIX (Ubuntu Server LTS for ARM64 Containers) 2023.2 (Build 227U)
IRISサーバーの構築
Dockerイメージの入手
IRISのDockerイメージファイルを入手します。 入手手順は、Developer Community サイトのメニュー「InterSystems Container Registry」を開き、左側ツリーの "InterSystems IRIS Community Edition" -> "iris-community" -> バージョン を選択。筆者の場合はarm64版のコマンドを実行します。

コマンドを実行してDockerイメージを取得します。

※ここで接続エラーになる場合、権限が無い可能性があります。トークンを発行してDockerにログインして下さい。
Dockerファイルの作成
以下のようにDockerファイルを作成します。筆者の場合、IRISをインストールした後に管理ポータルから構成を作っていくので、ここでは最小限のコマンドで作成しています。
dockerfile
ARG IMAGE
FROM 'containers.intersystems.com/intersystems/iris-community-arm64:2023.2.0.227.0'
ENV WORKDIR=/tmp/iris
RUN iris start IRIS quietly EmergencyId=sys,sys \
| iris stop iris quietly
Docker-composeファイルの作成
docker-composeファイルを作成します。上記のDockerファイルだけでも作成は出来ますが、後々の事を考えてDocker-Composeファイルを利用します。
docker-compose.yml
version: '3.8'
services:
iris:
build:
dockerfile: "dockerfile"
command: --check-caps false
container_name: iris_sv
ports:
- "9092:52773"
- "9091:51773"
volumes:
- /Users/xxxx/IRIS:/opt/iris
tty: true
restart: always
environment:
TZ: Asia/Tokyo
logging:
driver: "json-file"
options:
max-size: "10m"
max-file: "3"
ポート番号は適宜変更して下さい。
ボリュームの左側値はホスト側のパスです。適宜環境に合わせて下さい。右側値はコンテナのパスです。ここにデータファイル(iris.dat)等を配置しておく事で、コンテナが削除されてもデータは残ります。
docker-composeの実行
作成したdocker-compose.ymlファイルを実行してIRISサーバーのコンテナを起動します。
docker-compose up --build -d
既にビルド済みなら、以下のコマンドになります。
docker-compose up -d
動作確認
管理ポータルを開いて動作確認をします。
http://localhost:9092/csp/sys/%25CSP.Portal.Home.zen
ターミナルを起動してみます。
docker exec -it iris_sv iris terminal IRIS
ターミナルでコマンドを実行してみます。
w $zdt($h, 3, 1)
おそらく、ローカル時間と一致していないかと思います。docker-composeでタイムゾーンを指定してますが、グリニッチ時間になっていると思います。現時点では筆者はここを修正する事が出来ていません。タイムゾーンに正しく沿ったコンテナを作る方法がわかる方がいれば、コメント下さい。
以上がDockerにIRISを構築する手順です。
追記(2023-10-24): docker-compose.yml内で、TZ: Asia/Tokyo としている箇所を TZ: JST-9 と指定する事でコンテナの時間をローカル時間に指定する事が出来ました。情報ありがとうございました。コンテナの時間をグリニッジからローカル時間に変更したい方は是非。
Comments
投稿ありがとうございます。
TZ=JST-9で行けると思います。
情報ありがとうございます!
docker-compose.ymlのTZの値を"Asia/Tokyo"から"JST-9"に変えたところ、ローカル時間に出来ました!