記事
· 2023年10月22日 4m read

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版のコマンドを実行します。

image

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

image

※ここで接続エラーになる場合、権限が無い可能性があります。トークンを発行して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 と指定する事でコンテナの時間をローカル時間に指定する事が出来ました。情報ありがとうございました。コンテナの時間をグリニッジからローカル時間に変更したい方は是非。

ディスカッション (2)2
続けるにはログインするか新規登録を行ってください