Skip to content
Gunter Zeilinger edited this page Apr 28, 2016 · 138 revisions

Docker images

Repository Tag(s) Description
dcm4che/slapd-dcm4chee 5.1.0 slapd with schemas and default configuration for dcm4chee-arc 5.x
dcm4che/postgres-dcm4chee 5.1.0 PostgreSQL for dcm4che-arc 5.x
dcm4che/logstash-dcm4chee 5.1.0 Logstash for dcm4che-arc 5.x
dcm4che/dcm4chee-arc-psql 5.1.0, 5.1.0-secure, 5.1.0-secure-ui, 5.1.0-logstash, 5.1.0-logstash-secure, 5.1.0-logstash-secure-ui dcm4chee-arc 5.x using PostgreSQL as DB

Docker Installation

Docker’s installation method differs based on your platform. You’ll want to review Docker’s Installation guides for your respective platforms.

To make things unified across the various platform, you may map dockerhost to the ip of where your docker instance is running.

By default on Linux that will be 127.0.0.1, so you would add the following line to your /etc/hosts file:

127.0.0.1 dockerhost

But on OSX and Windows it will be a unique IP you can get by running boot2docker ip (i.e. 192.168.59.122). In that case the following should be added:

192.168.59.122 dockerhost

From now on you can use dockerhost in all your applications and get to it no matter what OS you are running on.

Run OpenLDAP Server

Before running the Archive container, you have to start a container providing the LDAP server, e.g:

> $docker run --name slapd \
           -p 389:389 \
           -e LDAP_BASE_DN=dc=dcm4che,dc=org \
           -e LDAP_ORGANISATION=dcm4che.org \
           -e LDAP_ROOTPASS=secret \
           -e LDAP_CONFIGPASS=secret \
           -e DEVICE_NAME=dcm4chee-arc \
           -e AE_TITLE=DCM4CHEE \
           -e DICOM_HOST=dockerhost \
           -e DICOM_PORT=11112 \
           -e HL7_PORT=2575 \
           -e SYSLOG_HOST=logstash \
           -e SYSLOG_PORT=8512 \
           -e SYSLOG_PROTOCOL=UDP \
           -e STORAGE_DIR=/storage/fs1 \
           -v /var/local/dcm4chee-arc/ldap:/var/lib/ldap \
           -v /var/local/dcm4chee-arc/slapd.d:/etc/ldap/slapd.d \
           -d dcm4che/slapd-dcm4chee:5.1.0

Run PostgreSQL Server

Before running the Archive container, you have to start a container providing the database server, e.g:

> $docker run --name postgres \
           -p 5432:5432 \
           -e POSTGRES_DB=pacsdb \
           -e POSTGRES_USER=pacs\
           -e POSTGRES_PASSWORD=pacs \
           -v /var/local/dcm4chee-arc/db:/var/lib/postgresql/data \
           -d dcm4che/postgres-dcm4chee:5.1.0

(Optional) Run Elastic Stack

If you want to store DCM4CHEE Archive 5's System logs and Audit Messages in Elasticsearch you have to also start containers providing Elasticsearch, Logstash and Kibana:

Run Elasticsearch

> $docker run --name elasticsearch \
           -p 9200:9200 \
           -p 9300:9300 \
           -v /var/local/dcm4chee-arc/elasticsearch:/usr/share/elasticsearch/data \
           -d elasticsearch:2.2

Run Logstash

> $docker run --name logstash \
           -p 12201:12201/udp \
           -p 8514:8514/udp \
           -p 8514:8514 \
           -v /var/local/dcm4chee-arc/elasticsearch:/usr/share/elasticsearch/data \
           --link elasticsearch:elasticsearch \
           -d dcm4che/logstash-dcm4chee:5.1.0

Run Kibana

> $docker run --name kibana \
           -p 5601:5601 \
           --link elasticsearch:elasticsearch \
           -d kibana:4.4

Run DCM4CHEE Archive 5

You may choose between

  • a not secured version (Tag Name: 5.1.0),
  • a version with secured UI and secured RESTful services (Tag Name: 5.1.0-secure),
  • a version with secured UI, but not secured RESTful services (Tag Name: 5.1.0-secure-ui),
  • a not secured version with pre-configured GELF Logger to emit System logs to Logstash (Tag Name: 5.1.0-logstash),
  • a version with pre-configured GELF Logger and with secured UI and secured RESTful services (Tag Name: 5.1.0-logstash-secure) and
  • a version with pre-configured GELF Logger and with secured UI, but not secured RESTful services (Tag Name: 5.1.0-logstash-secure-ui).

You have to link the archive container with the OpenLDAP (alias:ldap) and the PostgreSQL (alias:db) container:

> $docker run --name dcm4chee-arc \
           -p 8080:8080 \
           -p 9990:9990 \
           -p 11112:11112 \
           -p 2575:2575 \
           -e JAVA_OPTS="-Xms64m -Xmx512m -Djava.net.preferIPv4Stack=true -Djboss.modules.system.pkgs=org.jboss.byteman -Djava.awt.headless=true" \
           -e WILDFLY_CHOWN="/opt/wildfly/standalone /storage" \
           -v /var/local/dcm4chee-arc/wildfly:/opt/wildfly/standalone \
           -v /var/local/dcm4chee-arc/storage:/storage \
           --link slapd:ldap \
           --link postgres:db \
           -d dcm4che/dcm4chee-arc-psql:5.1.0-secure-ui

If you want to store DCM4CHEE Archive 5's System logs and Audit Messages in Elasticsearch, you also have to link the archive container with the Logstash (alias:logstash) container:

> $docker run --name dcm4chee-arc \
           -p 8080:8080 \
           -p 9990:9990 \
           -p 11112:11112 \
           -p 2575:2575 \
           -e JAVA_OPTS="-Xms64m -Xmx512m -Djava.net.preferIPv4Stack=true -Djboss.modules.system.pkgs=org.jboss.byteman -Djava.awt.headless=true" \
           -e WILDFLY_CHOWN="/opt/wildfly/standalone /storage" \
           -v /var/local/dcm4chee-arc/wildfly:/opt/wildfly/standalone \
           -v /var/local/dcm4chee-arc/storage:/storage \
           --link slapd:ldap \
           --link postgres:db \
           --link logstash:logstash \
           -d dcm4che/dcm4chee-arc-psql:5.1.0-logstash-secure-ui

Use Docker Composite

Alternatively you may use Docker Composite to take care for starting and linking the containers, by specifying the services in a configuration file docker-compose.yml (e.g.):

slapd:
  image: dcm4che/slapd-dcm4chee:5.1.0
  ports:
    - "389:389"
  environment:
    LDAP_BASE_DN: dc=dcm4che,dc=org
    LDAP_ORGANISATION: dcm4che.org
    LDAP_ROOTPASS: secret
    LDAP_CONFIGPASS: secret
    DEVICE_NAME: dcm4chee-arc
    AE_TITLE: DCM4CHEE
    DICOM_HOST: dockerhost
    DICOM_PORT: 11112
    HL7_PORT: 2575
    SYSLOG_HOST: logstash
    SYSLOG_PORT: 8512
    SYSLOG_PROTOCOL: UDP
    STORAGE_DIR: /storage/fs1
  volumes:
    - /var/local/dcm4chee-arc/ldap:/var/lib/ldap
    - /var/local/dcm4chee-arc/slapd.d:/etc/ldap/slapd.d
postgres:
  image: dcm4che/postgres-dcm4chee:5.1.0
  ports:
    - "5432:5432"
  environment:
    POSTGRES_DB: pacsdb
    POSTGRES_USER: pacs
    POSTGRES_PASSWORD: pacs
  volumes:
    - /var/local/dcm4chee-arc/db:/var/lib/postgresql/data
elasticsearch:
  image: elasticsearch:2.2
  ports:
    - "9200:9200"
    - "9300:9300"
  volumes:
    - /var/local/dcm4chee-arc/elasticsearch:/usr/share/elasticsearch/data
kibana:
  image: kibana:4.4
  ports:
    - "5601:5601"
  links:
    - elasticsearch:elasticsearch
logstash:
  image: dcm4che/logstash-dcm4chee:5.1.0
  ports:
    - "12201:12201/udp"
    - "8514:8514/udp"
    - "8514:8514"
  links:
    - elasticsearch:elasticsearch
dcm4chee-arc:
  image: dcm4che/dcm4chee-arc-psql:5.1.0-logstash-secure-ui
  ports:
    - "8080:8080"
    - "9990:9990"
    - "11112:11112"
    - "2575:2575"
  environment:
    JAVA_OPTS: "-Xms64m -Xmx512m -Djava.net.preferIPv4Stack=true -Djboss.modules.system.pkgs=org.jboss.byteman -Djava.awt.headless=true"
    WILDFLY_CHOWN: "/opt/wildfly/standalone /storage"
  volumes:
    - /var/local/dcm4chee-arc/wildfly:/opt/wildfly/standalone
    - /var/local/dcm4chee-arc/storage:/storage
  links:
    - slapd:ldap
    - postgres:db
    - logstash:logstash

and starting them by

> $docker-compose up -d

Web Service URLs

Clone this wiki locally