DCM4CHEEがだいぶ前からDocker対応しているので、その手順をメモします。
基本的には、このページに記載の通りです。
https://github.com/dcm4che/dcm4chee-arc-light/wiki/Running-on-Docker
一番シンプルな構築方法でいきます。
https://github.com/dcm4che/dcm4chee-arc-light/wiki/Run-minimum-set-of-archive-services-on-a-single-host
あくまでもテストケースですが、今回は仮想OSを立てて、その中にDockerを入れて、サーバーのホストにします。以下のようにしてみました。
「:」以降はタグなので、その都度最新バージョンを確認する。
PostgreSQLサーバーを起動
以上のコマンド時にエラーが出たら何かおかしい。
正常に起動すると各コマンド時にハッシュタグのようなものが出力される。
https://localhost:8443/dcm4chee-arc/ui2
(セキュリティ警告が出たら、ページ内の詳細をみるを開き、危険性を承知で続行する)
http://depts.washington.edu/petctdro/DROsuv_main.html
(http://depts.washington.edu/petctdro/downloads/DRO_20130529.zip)
しかし、dockerでフォルダのマウントが必要なのか、私の場合は「Not found Such File or Directory」(のような感じの)エラーが出た。
Failed to scan file /home/tatsunidas/DICOMSample/ 20130528_DRO_DICOM_male/DRO_ CT_20130528: /home/tatsunidas/DICOMSample/ 20130528_DRO_DICOM_male/DRO_ CT_20130528 (No such file or directory)
java.io.FileNotFoundException: /home/tatsunidas/DICOMSample/ 20130528_DRO_DICOM_male/DRO_ CT_20130528 (No such file or directory)
別の方法として、UbuntuにDcm4cheツールをインストールしてテストしました。
dcm4che5-5.19.0-bin.zipをダウンロード
https://sourceforge.net/projects/dcm4che/files/dcm4che3/5.19.0/
.bashrcにvimを使ってパスを通す。
テスト
storescu -c DCM4CHEE@arc:11112 path/to/sampledicomdir
以上
VisionaryImagingServices,Inc. 2019/10/17
基本的には、このページに記載の通りです。
https://github.com/dcm4che/dcm4chee-arc-light/wiki/Running-on-Docker
一番シンプルな構築方法でいきます。
https://github.com/dcm4che/dcm4chee-arc-light/wiki/Run-minimum-set-of-archive-services-on-a-single-host
あくまでもテストケースですが、今回は仮想OSを立てて、その中にDockerを入れて、サーバーのホストにします。以下のようにしてみました。
大元のPCでの作業
- VirtualBox(またはHyper-V)を用意する
- Ubuntu19.04を最小構成で仮想化する(メモリは4GB, 割り当て仮想保存容量127GBなど)。
- (インストール時にイメージを再起動できない場合はPC本体を再起動するとよいことがあります)
- Ubuntu19.04を起動する。
Ubuntuで行う作業
Ubuntuをインストールしたら行うお決まりのコマンドを打つ
- sudo -i
- apt-get update
- apt-get upgrade
vimを入れておく
- apt install vim
UbuntuにJavaを入れておく。(JDK9以上)
- apt install openjdk-12-jre-headless
Dockerをインストールする
- apt install docker.io
DCM4CHEE関連のイメージを取得する(一行ずつ実行)
- docker pull dcm4che/slapd-dcm4chee:2.4.44-19.0
- docker pull dcm4che/postgres-dcm4chee:12.0-19
- docker pull dcm4che/dcm4chee-arc-psql:5.19.0
- docker pull dcm4che/keycloak:7.0.0
- docker pull dcm4che/keycloak-gatekeeper:7.0.0
- docker pull dcm4che/logstash-dcm4chee:7.2.0-9
- docker pull dcm4che/dcm4che-tools:5.19.0
「:」以降はタグなので、その都度最新バージョンを確認する。
データボリュームを共有するために必要なフォルダを先に作っておく
- cd /var/local
- mkdir dcm4chee-arc
- cd dcm4chee-arc
- mkdir ldap
- mkdir slapd.d
- mkdir db
- mkdir wildfly
DCM4CHEEを起動する
最初にdockerのネットワークを作っておく。LDAPとDBなどのリンク用。$ docker network create dcm4chee_default
LDAPサーバーを起動$ docker run --network=dcm4chee_default --name ldap \
-p 389:389 \
-v /etc/localtime:/etc/localtime:ro \
-v /etc/timezone:/etc/timezone:ro \
-v /var/local/dcm4chee-arc/ldap:/var/lib/ldap \
-v /var/local/dcm4chee-arc/slapd.d:/etc/ldap/slapd.d \
-d dcm4che/slapd-dcm4chee:2.4.44-19.0
389はLDAPポート。PostgreSQLサーバーを起動
$ docker run --network=dcm4chee_default --name db \
-p 5432:5432 \
-e POSTGRES_DB=pacsdb \
-e POSTGRES_USER=pacs \
-e POSTGRES_PASSWORD=pacs \
-v /etc/localtime:/etc/localtime:ro \
-v /etc/timezone:/etc/timezone:ro \
-v /var/local/dcm4chee-arc/db:/var/lib/postgresql/data \
-d dcm4che/postgres-dcm4chee:12.0-19
アプリケーションサーバのWildFlyを起動$ docker run --network=dcm4chee_default --name arc \
-p 8080:8080 \
-p 8443:8443 \
-p 9990:9990 \
-p 9993:9993 \
-p 11112:11112 \
-p 2575:2575 \
-e POSTGRES_DB=pacsdb \
-e POSTGRES_USER=pacs \
-e POSTGRES_PASSWORD=pacs \
-e WILDFLY_WAIT_FOR="ldap:389 db:5432" \
-v /etc/localtime:/etc/localtime:ro \
-v /etc/timezone:/etc/timezone:ro \
-v /var/local/dcm4chee-arc/wildfly:/opt/wildfly/standalone \
-d dcm4che/dcm4chee-arc-psql:5.19.0
以上のコマンド時にエラーが出たら何かおかしい。
正常に起動すると各コマンド時にハッシュタグのようなものが出力される。
テストする
UIにアクセスする。https://localhost:8443/dcm4chee-arc/ui2
(セキュリティ警告が出たら、ページ内の詳細をみるを開き、危険性を承知で続行する)
データを送ってみる。
お借りしました。http://depts.washington.edu/petctdro/DROsuv_main.html
(http://depts.washington.edu/petctdro/downloads/DRO_20130529.zip)
$ docker run --rm --network=dcm4chee_default dcm4che/dcm4che-tools:5.19.0 storescu -cDCM4CHEE@arc:11112 /path/to/samplect
しかし、dockerでフォルダのマウントが必要なのか、私の場合は「Not found Such File or Directory」(のような感じの)エラーが出た。
Failed to scan file /home/tatsunidas/DICOMSample/
java.io.FileNotFoundException: /home/tatsunidas/DICOMSample/
別の方法として、UbuntuにDcm4cheツールをインストールしてテストしました。
dcm4che5-5.19.0-bin.zipをダウンロード
https://sourceforge.net/projects/dcm4che/files/dcm4che3/5.19.0/
.bashrcにvimを使ってパスを通す。
テスト
storescu -c DCM4CHEE@arc:11112 path/to/sampledicomdir
UIで送信が成功したか確認
終了する
dockerでコンテナを終了させる。$ docker stop ldap db arc
再度立ち上げる場合は、イメージは取得済みなので、以下のコマンドで新規にコンテナが立ち上がる。$ docker start ldap db arc
起動していないコンテナ(使わなくなったコンテナ)は削除する。$ docker rm -v ldap db arc
バージョンが変わったりして、LDAP、DB、DCM4CHEEなどのイメージごと消す場合は、コンテナを消してから、$ docker rmi imagename imagename ...(例)
その際はネットワークも消すこと。$ docker network rm dcm4chee_default
以上
VisionaryImagingServices,Inc. 2019/10/17
コメント
コメントを投稿