annotate Sphinx/source/users/docker.rst @ 178:981e5a996b11

Orthanc 1.5.0
author Sebastien Jodogne <s.jodogne@gmail.com>
date Mon, 10 Dec 2018 17:04:09 +0100
parents 570f28208c5e
children 9c03457239c2
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
54
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
1 .. _docker:
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
2 .. highlight:: bash
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
3
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
4
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
5 Orthanc for Docker
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
6 ==================
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
7
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
8 .. contents::
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
9 :depth: 3
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
10
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
11
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
12 Introduction
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
13 ------------
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
14
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
15 `Docker images <https://en.wikipedia.org/wiki/Docker_(software)>`__
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
16 for the Orthanc core and its official plugins are freely available on
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
17 the `DockerHub platform <https://hub.docker.com/u/jodogne/>`__. The
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
18 source code of the corresponding Docker images is available on `GitHub
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
19 <https://github.com/jodogne/OrthancDocker>`__.
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
20
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
21 *Note for CentOS users:* The Docker environment might be difficult to
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
22 configure on your platform. Hints are available on the `Orthanc Users
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
23 discussion group
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
24 <https://groups.google.com/d/msg/orthanc-users/w-uPAknnRQc/-XhzBGSCAwAJ>`__.
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
25
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
26
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
27 Running the Orthanc core
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
28 ------------------------
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
29
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
30 The following command will start the core of Orthanc, with all the
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
31 plugins disabled::
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
32
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
33 $ sudo docker run -p 4242:4242 -p 8042:8042 --rm jodogne/orthanc
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
34
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
35 Once Orthanc is running, use Mozilla Firefox at URL
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
36 http://localhost:8042/ to interact with Orthanc. The default username
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
37 is ``orthanc`` and its password is ``orthanc``.
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
38
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
39 The command above starts the mainline version of Orthanc, whose
69
03d35f985f26 update docker
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 54
diff changeset
40 development is in continuous progress. Do not forget to regularly
03d35f985f26 update docker
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 54
diff changeset
41 update the Docker image to benefit from the latest features::
03d35f985f26 update docker
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 54
diff changeset
42
03d35f985f26 update docker
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 54
diff changeset
43 $ sudo docker pull jodogne/orthanc
03d35f985f26 update docker
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 54
diff changeset
44
03d35f985f26 update docker
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 54
diff changeset
45 If more stability is required, you can select the official release of
03d35f985f26 update docker
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 54
diff changeset
46 Orthanc to be run::
54
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
47
178
981e5a996b11 Orthanc 1.5.0
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 177
diff changeset
48 $ sudo docker run -p 4242:4242 -p 8042:8042 --rm jodogne/orthanc:1.5.0
54
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
49
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
50 Passing additional command-line options (e.g. to make Orthanc verbose)
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
51 can be done as follows (note the ``/etc/orthanc`` option that is
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
52 required for Orthanc to find its configuration files)::
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
53
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
54 $ sudo docker run -p 4242:4242 -p 8042:8042 --rm jodogne/orthanc /etc/orthanc --verbose
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
55
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
56
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
57 Usage, with plugins enabled
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
58 ---------------------------
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
59
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
60 The following command will run the mainline version of the Orthanc
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
61 core, together with its :ref:`Web viewer <webviewer>`, its
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
62 :ref:`PostgreSQL support <postgresql>`, its :ref:`DICOMweb
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
63 implementation <dicomweb>`, and its :ref:`whole-slide imaging viewer
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
64 <wsi>`::
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
65
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
66 $ sudo docker run -p 4242:4242 -p 8042:8042 --rm jodogne/orthanc-plugins
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
67
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
68
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
69 Fine-tuning the configuration
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
70 -----------------------------
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
71
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
72 For security reasons, you should at least protect your instance of
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
73 Orthanc by changing this default user, in the ``RegisteredUsers``
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
74 :ref:`configuration option <configuration>`. You will also probably
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
75 need to fine-tune other parameters, notably the list of the DICOM
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
76 modalities Orthanc knows about.
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
77
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
78 You can generate a custom configuration file for Orthanc as follows::
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
79
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
80 $ sudo docker run --rm --entrypoint=cat jodogne/orthanc /etc/orthanc/orthanc.json > /tmp/orthanc.json
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
81
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
82 Then, edit the just-generated file ``/tmp/orthanc.json`` and restart
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
83 Orthanc with your updated configuration::
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
84
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
85 $ sudo docker run -p 4242:4242 -p 8042:8042 --rm -v /tmp/orthanc.json:/etc/orthanc/orthanc.json:ro jodogne/orthanc
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
86
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
87
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
88 Making the Orthanc database persistent
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
89 --------------------------------------
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
90
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
91 The filesystem of Docker containers is volatile (its content is
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
92 deleted once the container stops). You can make the Orthanc database
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
93 persistent by mapping the ``/var/lib/orthanc/db`` folder of the
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
94 container to some path in the filesystem of your Linux host, e.g.::
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
95
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
96 $ mkdir /tmp/orthanc-db
178
981e5a996b11 Orthanc 1.5.0
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 177
diff changeset
97 $ sudo docker run -p 4242:4242 -p 8042:8042 --rm -v /tmp/orthanc-db/:/var/lib/orthanc/db/ jodogne/orthanc:1.5.0
54
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
98
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
99
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
100 Whole-slide imaging support
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
101 ---------------------------
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
102
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
103 The ``orthanc-plugins`` image includes support for :ref:`microscopic
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
104 whole-slide imaging (WSI) <wsi>`. For instance, the following command
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
105 will start the WSI viewer plugin transparently together with Orthanc::
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
106
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
107 $ sudo docker run -p 4242:4242 -p 8042:8042 --rm --name orthanc-wsi jodogne/orthanc-plugins
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
108
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
109 Note that we gave the name ``orthanc-wsi`` to this new Docker
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
110 container. Then, the Dicomizer command-line tool can be invoked as
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
111 follows::
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
112
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
113 $ sudo docker run -t -i --rm --link=orthanc-wsi:orthanc --entrypoint=OrthancWSIDicomizer -v /tmp/Source.tif:/tmp/Source.tif:ro jodogne/orthanc-plugins --username=orthanc --password=orthanc --orthanc=http://orthanc:8042/ /tmp/Source.tif
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
114
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
115 This command needs a few explanations:
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
116
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
117 * ``--link=orthanc-wsi:orthanc`` links the container running the
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
118 Dicomizer, to the Docker container running Orthanc that we started
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
119 just before.
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
120 * ``--entrypoint=OrthancWSIDicomizer`` specifies that the Dicomizer
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
121 must be run instead of the Orthanc server.
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
122 * ``-v /tmp/Source.tif:/tmp/Source.tif:ro`` maps the source image
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
123 ``/tmp/Source.tif`` on the host computer into the Orthanc container
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
124 as read-only file ``/tmp/Source.tif``.
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
125 * ``--orthanc=http://orthanc:8042/`` instructs the Dicomizer to push
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
126 images through the ``--link`` created above.
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
127 * ``--username=orthanc --password=orthanc`` correspond to the default
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
128 credentials of the ``orthanc-plugins`` image.
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
129
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
130 Obviously, you are free to add all the options you wish (check out the
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
131 ``--help`` flag to list these options). In particular, the
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
132 ``--dataset`` option allows to specify DICOM tags, in the JSON file
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
133 format, so as to include them in the resulting DICOM series (the
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
134 option ``--sample-dataset`` prints a sample JSON file that has the
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
135 expected format).
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
136
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
137 If you have a source image that is not a hierarchical TIFF, you must
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
138 instruct the Dicomizer to use `OpenSlide <http://openslide.org/>`__ to
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
139 decode it by adding the ``--openslide`` option::
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
140
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
141 $ sudo docker run -t -i --rm --link=orthanc-wsi:orthanc --entrypoint=OrthancWSIDicomizer -v /tmp/Source.svs:/tmp/Source.svs:ro jodogne/orthanc-plugins --username=orthanc --password=orthanc --orthanc=http://orthanc:8042/ --openslide=libopenslide.so /tmp/Source.svs
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
142
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
143
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
144 PostgreSQL and Orthanc inside Docker
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
145 ------------------------------------
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
146
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
147 It is possible to run both Orthanc and PostgreSQL inside Docker. First, start the official PostgreSQL container::
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
148
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
149 $ sudo docker run --name some-postgres -e POSTGRES_USER=postgres -e POSTGRES_PASSWORD=pgpassword --rm postgres
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
150
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
151 Open another shell, and create a database to host the Orthanc database::
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
152
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
153 $ sudo docker run -it --link some-postgres:postgres --rm postgres sh -c 'echo "CREATE DATABASE orthanc;" | exec psql -h "$POSTGRES_PORT_5432_TCP_ADDR" -p "$POSTGRES_PORT_5432_TCP_PORT" -U postgres'
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
154
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
155 You will have to type the password (cf. the environment variable
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
156 ``POSTGRES_PASSWORD`` above that it set to ``pgpassword``). Then,
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
157 retrieve the IP and the port of the PostgreSQL container, together
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
158 with the default Orthanc configuration file::
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
159
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
160 $ sudo docker inspect --format '{{ .NetworkSettings.IPAddress }}' some-postgres
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
161 $ sudo docker inspect --format '{{ .NetworkSettings.Ports }}' some-postgres
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
162 $ sudo docker run --rm --entrypoint=cat jodogne/orthanc-plugins /etc/orthanc/orthanc.json > /tmp/orthanc.json
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
163
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
164 .. highlight:: json
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
165
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
166 Add the following section to ``/tmp/orthanc.json`` (adapting the
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
167 values Host and Port to what docker inspect said above)::
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
168
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
169 "PostgreSQL" : {
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
170 "EnableIndex" : true,
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
171 "EnableStorage" : true,
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
172 "Host" : "172.17.0.38",
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
173 "Port" : 5432,
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
174 "Database" : "orthanc",
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
175 "Username" : "postgres",
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
176 "Password" : "pgpassword"
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
177 }
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
178
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
179 .. highlight:: bash
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
180
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
181 Finally, you can start Orthanc::
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
182
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
183 $ sudo docker run -p 4242:4242 -p 8042:8042 --rm -v /tmp/orthanc.json:/etc/orthanc/orthanc.json:ro jodogne/orthanc-plugins
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
184
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
185
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
186 Debugging
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
187 ---------
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
188
176
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 175
diff changeset
189 .. highlight:: text
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 175
diff changeset
190
54
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
191 For debugging purpose, you can start an interactive bash session as
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
192 follows::
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
193
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
194 $ sudo docker run -i -t --rm --entrypoint=bash jodogne/orthanc
bd0fbf1f0143 docker documentation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
195 $ sudo docker run -i -t --rm --entrypoint=bash jodogne/orthanc-plugins
175
2c87e18ace33 gdb and docker
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 166
diff changeset
196
176
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 175
diff changeset
197 For developers and power users, the images ``jodogne/orthanc-debug``
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 175
diff changeset
198 contain the Orthanc core compiled in debug mode (i.e. with runtime
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 175
diff changeset
199 assertions enabled, and including debugging symbols). A ``gdb``
177
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 176
diff changeset
200 command-line session can be started as follows::
176
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 175
diff changeset
201
177
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 176
diff changeset
202 $ sudo docker run -i -t --rm --entrypoint=bash --network=host --cap-add=SYS_PTRACE -p 4242:4242 -p 8042:8042 jodogne/orthanc-debug
176
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 175
diff changeset
203 # gdb --args Orthanc /etc/orthanc/ --verbose
175
2c87e18ace33 gdb and docker
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 166
diff changeset
204
176
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 175
diff changeset
205 Note that:
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 175
diff changeset
206
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 175
diff changeset
207 * The plugins are not available in this image yet.
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 175
diff changeset
208
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 175
diff changeset
209 * The Orthanc source code can be found in folder ``/root/orthanc``.
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 175
diff changeset
210
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 175
diff changeset
211 * The build artifacts can be found in folder ``/root/orthanc/Build``.
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 175
diff changeset
212
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 175
diff changeset
213 * This command launches the mainline version. To start a released version,
178
981e5a996b11 Orthanc 1.5.0
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 177
diff changeset
214 use e.g. ``jodogne/orthanc-debug:1.5.0``.