← Навигация по документации

Защищённые сервисы Архива с использованием Keycloak в качестве сервера аутентификации.

Убедитесь, что в вашем DNS-сервере есть запись имени хоста для docker-хоста.
(Опционально) Создайте системные группы и пользователей с конкретными ID групп и пользователей, используемых сервисами архива на хосте
$ sudo -i
# groupadd -r slapd-dcm4chee --gid=1021 && useradd -r -g slapd-dcm4chee --uid=1021 slapd-dcm4chee
# groupadd -r postgres-dcm4chee --gid=999 && useradd -r -g postgres-dcm4chee --uid=999 postgres-dcm4chee
# groupadd -r dcm4chee-arc --gid=1023 && useradd -r -g dcm4chee-arc --uid=1023 dcm4chee-arc
# groupadd -r keycloak-dcm4chee --gid=1029 && useradd -r -g keycloak-dcm4chee --uid=1029 keycloak-dcm4chee
# exit

Продолжите, используя Docker Command Line или Docker Compose:

Использование Docker Command Line

  1. Создайте пользовательскую bridge-сеть

    $ docker network create dcm4chee_network

  2. Запустите OpenLDAP-сервер, как описано в Run minimum set of archive services on a single host.
  3. Запустите MariaDB-сервер для сервера аутентификации Keycloak

    Запустите контейнер с MariaDB Server в созданной сети, напр.: $ docker run --network=dcm4chee_network --name mariadb \ -p 3306:3306 \ -e MYSQL_ROOT_PASSWORD=secret \ -e MYSQL_DATABASE=keycloak \ -e MYSQL_USER=keycloak \ -e MYSQL_PASSWORD=keycloak \ -v /etc/localtime:/etc/localtime:ro \ -v /etc/timezone:/etc/timezone:ro \ -v /var/local/dcm4chee-arc/mysql:/var/lib/mysql \ -d mariadb:10.11.4

Публикация порта 3306 MariaDB Server с контейнера на хост через -p 3306:3306 позволяет получать доступ к MariaDB Server также внешним клиентам MariaDB/MySQL. Это не требуется для работы Keycloak, поскольку контейнер Keycloak подключается к порту Server контейнера MariaDB Server через созданную bridge-сеть.

```
-e MYSQL_ROOT_PASSWORD=secret
-e MYSQL_DATABASE=keycloak \
-e MYSQL_USER=keycloak \
-e MYSQL_PASSWORD=keycloak \
```

задают пароль супер-пользователя root MariaDB, имя базы данных, имя пользователя и его пароль.

См. доступные переменные окружения контейнера MariaDB.

Bind-mount -v /etc/localtime:/etc/localtime:ro и -v /etc/timezone:/etc/timezone:ro дублирует ваш часовой пояс хоста внутри контейнера. Иначе часовой пояс контейнера — UTC. Внимание: если на вашем хосте нет /etc/timezone, необходимо создать его (напр.: $ echo "Europe/Vienna" > /etc/timezone) перед запуском контейнера, иначе контейнер не запустится.

Bind-mount -v /var/local/dcm4chee-arc/mysql:/var/lib/mysql обеспечивает хранение базы данных в указанном каталоге хоста. Она инициализируется при первом запуске контейнера, если ещё не присутствует в указанном каталоге хоста. Это гарантирует, что данные не будут потеряны при удалении и повторном создании контейнера MariaDB Server.

  1. Запустите сервер аутентификации Keycloak

    Запустите контейнер с предварительно настроенным сервером аутентификации Keycloak в созданной сети, напр.: $ docker run --network=dcm4chee_network --name keycloak \ -p 8843:8843 \ -e KC_HTTPS_PORT=8843 \ -e KC_HOSTNAME=https://<docker-host>:8843 \ -e KC_HOSTNAME_BACKCHANNEL_DYNAMIC=true \ -e KC_BOOTSTRAP_ADMIN_USERNAME=admin \ -e KC_BOOTSTRAP_ADMIN_PASSWORD=changeit \ -e KC_DB=mariadb \ -e KC_DB_URL_DATABASE=keycloak \ -e KC_DB_URL_HOST=mariadb \ -e KC_DB_USERNAME=keycloak \ -e KC_DB_PASSWORD=keycloak \ -e KC_LOG=file \ -e ARCHIVE_HOST=<docker-host> \ -e KEYCLOAK_WAIT_FOR="ldap:389 mariadb:3306" \ -v /etc/localtime:/etc/localtime:ro \ -v /etc/timezone:/etc/timezone:ro \ -v /var/local/dcm4chee-arc/keycloak:/opt/keycloak/data \ -d dcm4che/keycloak:26.0.6

    -p 8843:8843 \ публикует https-порт (8843) Keycloak с контейнера на хост, чтобы разрешить подключения от внешних https-клиентов к Keycloak.

    Номер порта задаётся через: -e KC_HTTPS_PORT=8843 \ чтобы избежать конфликтов с https-портом, по умолчанию используемым Wildfly с развёрнутым приложением dcm4che Archive 5.

    -e KC_HOSTNAME=https://<docker-host>:8843 \ указывает полный URL, по которому сервер Keycloak будет доступен внешним клиентам — в частности, веб-браузерам.

    -e KC_HOSTNAME_BACKCHANNEL_DYNAMIC=true \ позволяет обращаться к backend-эндпоинтам сервера Keycloak по другому URL, отличному от frontchannel, заданного через KC_HOSTNAME, что обеспечивает коммуникацию через docker overlay/bridge-сети из других docker-контейнеров — в частности, из контейнера архива.

    -e KC_BOOTSTRAP_ADMIN_USERNAME=admin \ -e KC_BOOTSTRAP_ADMIN_PASSWORD=changeit \ требуется для создания admin-аккаунта, чтобы иметь возможность войти в админ-консоль master-realm Keycloak по адресу https://${KC_HOSTNAME}:${KC_HTTPS_PORT}[/${KC_HTTP_RELATIVE_PATH}]. После создания первого пользователя с административными правами вы можете использовать UI для смены пароля или создания дополнительных admin-пользователей и/или удаления этого исходного admin-пользователя.

    -e KC_DB: mariadb -e KC_DB_URL_DATABASE: keycloak -e KC_DB_URL_HOST: mariadb -e KC_DB_USERNAME: keycloak -e KC_DB_PASSWORD: keycloak задают поставщика базы данных, имя, хост, имя пользователя и пароль базы данных, используемой Keycloak. KC_DB_URL_DATABASE, KC_DB_USERNAME и KC_DB_PASSWORD должны совпадать со значениями, заданными для MYSQL_DATABASE, MYSQL_USER и MYSQL_PASSWORD при запуске контейнера MariaDB Server, а KC_DB_URL_HOST должен совпадать с именем этого контейнера.

    KC_LOG=file включает логирование в файл /opt/keycloak/data/keycloak.log вместо вывода в стандартный поток вывода.

    Если вы задали переменные окружения LDAP_BASE_DN, LDAP_ROOTPASS для контейнера LDAP-сервера, необходимо задать эти переменные окружения и для контейнера Keycloak. Иначе Keycloak не сможет подключиться к LDAP-серверу.

    -e ARCHIVE_HOST=<docker-host> \ задаёт публичное имя хоста устройства архива, на которое ссылаются OIDC-клиенты Keycloak для защиты UI и Wildfly Administration Console архива, инициализируемых при первом запуске. Необходимо заменить \ на имя хоста docker-хоста, которое должно разрешаться вашим DNS-сервером.

    -e KEYCLOAK_WAIT_FOR=ldap:389 mariadb:3306 задерживает запуск Keycloak до тех пор, пока OpenLDAP slapd и MariaDB server не начнут прослушивать указанные порты, что предотвращает ошибки при перезапуске всех контейнеров, вызванные ошибками подключения Keycloak к LDAP до того, как OpenLDAP slapd и MariaDB server готовы принимать соединения.

    Дополнительные доступные переменные окружения контейнера Keycloak см. на https://github.com/dcm4che-dockerfiles/keycloak-quarkus#environment-variables.

    Bind-mount -v /etc/localtime:/etc/localtime:ro и -v /etc/timezone:/etc/timezone:ro дублирует ваш часовой пояс хоста внутри контейнера. Иначе часовой пояс контейнера — UTC. Внимание: если на вашем хосте нет /etc/timezone, необходимо создать его (напр.: $ echo "Europe/Vienna" > /etc/timezone) перед запуском контейнера, иначе контейнер не запустится.

    Bind-mount -v /var/local/dcm4chee-arc/keycloak:/opt/keycloak/data отображает лог- и временные файлы Keycloak в указанный каталог хоста.

    По умолчанию https-сервис использует сертификат для обработки TLS-соединений. Чтобы избежать предупреждений безопасности веб-браузеров при доступе к UI Keycloak или WildFly Administration Console, необходимо предоставить сертификат, Common Name и/или Subject Alt Name которого совпадает с именем хоста и который подписан доверенным издателем, в файле keystore в формате PKCS #12 или Java KeyStore (JKS), примонтировать этот файл или содержащий его каталог в контейнер и сослаться на него через переменную окружения KC_HTTPS_KEY_STORE_FILE.

    Проверьте лог сервера Keycloak на предмет успешного запуска: console $ tail -f /var/local/dcm4chee-arc/keycloak/log/keycloak.log 2022-06-09 16:06:19,360 INFO [org.jgroups.protocols.pbcast.GMS] (keycloak-cache-init) 875d7be6d885-1337: no members discovered after 2002 ms: creating cluster as coordinator 2022-06-09 16:06:19,369 INFO [org.infinispan.CLUSTER] (keycloak-cache-init) ISPN000094: Received new cluster view for channel ISPN: [875d7be6d885-1337|0] (1) [875d7be6d885-1337] 2022-06-09 16:06:19,373 INFO [org.infinispan.CLUSTER] (keycloak-cache-init) ISPN000079: Channel `ISPN` local address is `875d7be6d885-1337`, physical addresses are `[172.21.0.3:44392]` 2022-06-09 16:06:19,873 INFO [org.keycloak.connections.infinispan.DefaultInfinispanConnectionProviderFactory] (main) Node name: 875d7be6d885-1337, Site name: null 2022-06-09 16:06:19,935 INFO [org.keycloak.services] (main) KC-SERVICES0050: Initializing master realm 2022-06-09 16:06:22,169 INFO [org.keycloak.services] (main) KC-SERVICES0004: Imported realm dcm4che from file /opt/keycloak/bin/../data/import/dcm4che-realm.json. 2022-06-09 16:06:22,405 INFO [org.keycloak.services] (main) KC-SERVICES0009: Added user 'admin' to realm 'master' 2022-06-09 16:06:22,719 INFO [io.quarkus] (main) Keycloak 19.0.1 on JVM (powered by Quarkus 2.7.5.Final) started in 8.238s. Listening on: https://0.0.0.0:8843 2022-06-09 16:06:22,719 INFO [io.quarkus] (main) Profile prod activated. 2022-06-09 16:06:22,719 INFO [io.quarkus] (main) Installed features: [agroal, cdi, hibernate-orm, jdbc-h2, jdbc-mariadb, jdbc-mssql, jdbc-mysql, jdbc-oracle, jdbc-postgresql, keycloak, logging-gelf, narayana-jta, reactive-routes, resteasy, resteasy-jackson, smallrye-context-propagation, smallrye-health, smallrye-metrics, vault, vertx]

Дополнительно см. переменные окружения Keycloak

  1. Запустите PostgreSQL-сервер, как описано в Run minimum set of archive services on a single host.
  2. Запустите Wildfly с развёрнутым приложением dcm4che Archive 5

    Запустите контейнер с Wildfly и развёрнутым приложением dcm4che Archive 5 в созданной сети, напр.: $ docker run --network=dcm4chee_network --name arc \ -p 8080:8080 \ -p 8443:8443 \ -p 9990:9990 \ -p 9993:9993 \ -p 11112:11112 \ -p 2762:2762 \ -p 2575:2575 \ -p 12575:12575 \ -e POSTGRES_DB=pacsdb \ -e POSTGRES_USER=pacs \ -e POSTGRES_PASSWORD=pacs \ -e AUTH_SERVER_URL=https://keycloak:8843 \ -e UI_AUTH_SERVER_URL=https://<docker-host>:8843 \ -e WILDFLY_WAIT_FOR="ldap:389 db:5432 keycloak:8843" \ -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.34.3-secure который отличается от Run minimum set of archive services on a single host только - -e AUTH_SERVER_URL=https://keycloak:8843 — гарантирует, что архив подключается к контейнеру keycloak через bridge-сеть, используя корректный порт, заданный переменной -e KC_HTTPS_PORT=8843 контейнера keycloak, - -e UI_AUTH_SERVER_URL=https://<docker-host>:8843 — необходимо заменить \ на имя хоста docker-хоста, которое должно разрешаться вашим DNS-сервером — и - -d dcm4che/dcm4chee-arc-psql:5.34.3-secure — чтобы выбрать Docker-образ Архива с защищённым UI и защищёнными RESTful-сервисами. Если вы хотите защитить UI Архива без защиты RESTful-сервисов, используйте -d dcm4che/dcm4chee-arc-psql:5.34.3-secure-ui.

    Если вы задали переменные окружения REALM_NAME или SSL_REQUIRED для контейнера сервера Keycloak, необходимо задать эти переменные окружения и для контейнера Архива. Иначе фоновый внеполосный REST-вызов к Keycloak для авторизации пользователя завершится с ошибкой.

    Если вы хотите запустить более одного контейнера Архива, необходимо указать различные значения переменной окружения UI_CLIENT_ID (по умолчанию: dcm4chee-arc-ui) и зарегистрировать каждый из UI Архива в Keycloak.

Дополнительно см. переменные окружения Архива

  1. Проверьте OIDC-клиент для UI Архива в Keycloak

    Войдите с пользователем/паролем root/changeit в Realm Admin Console Keycloak по адресу https://<docker-host>:8843/admin/dcm4che/console Примечание: - Замените <docker-host> на имя хоста docker-хоста. - Если вы изменили имя realm по умолчанию dcm4che через переменную окружения REALM_NAME для контейнеров Keycloak и Архива, замените dcm4che в URL на это значение.

    Docker-образ Keycloak dcm4che/keycloak:26.0.6 и новее создаёт OIDC-клиент для UI Архива при первом запуске, настраиваемый через переменные окружения : - UI_CLIENT_ID - ARCHIVE_HOST - ARCHIVE_HTTP_PORT - ARCHIVE_HTTPS_PORT

    Только пользователи с ролью user имеют право доступа к UI Архива и RESTful-сервисам. В зависимости от Конфигурация прав UI конкретные функции UI ограничены дополнительными ролями пользователей. Пользователи с ролью root — или значением, заданным переменной окружения SUPER_USER_ROLE для контейнера Архива — имеют доступ ко всем функциям UI независимо от их других ролей и настроенных прав UI.

    Выйдите из системы, прежде чем проверять, что доступ к UI Архива по адресу http://<docker-host>:8080/dcm4chee-arc/ui2 или https://<docker-host>:8443/dcm4chee-arc/ui2 перенаправит вас на страницу входа Keycloak. Вы можете войти с пользователем/паролем root/changeit, admin/changeit или user/changeit.

    Каждый пользователь может изменить свой пароль и другие настройки аккаунта через Edit Account в Sign-in Tools в правом верхнем углу UI Архива. Пользователи, которым назначена роль realm-management -> view-realm, также имеют ссылку Admin Realm для просмотра Keycloak Realm Admin Console.

    Только пользователи со всеми ролями, заданными клиентом realm-management, имеют право доступа к Keycloak Administration Console и выполнения административных изменений.

  2. Проверьте OIDC-клиент для Wildfly Administration Console в Keycloak

    Доступ к Wildfly Administration Console также защищён с помощью Keycloak.

    Docker-образ Keycloak dcm4che/keycloak:26.0.6 и новее также создаёт ещё один OIDC-клиент для Wildfly Administration Console при первом запуске, настраиваемый через переменные окружения WILDFLY_CONSOLE, ARCHIVE_HOST и ARCHIVE_MANAGEMENT_HTTPS_PORT:

    Только пользователи с ролью ADMINISTRATOR имеют право доступа к WildFly Administration Console.

    Выйдите из системы, прежде чем проверять, что доступ к WildFly Administration Console по адресу http://<docker-host>:9990 или https://<docker-host>:9993 перенаправит вас на страницу входа Keycloak. Вы можете войти с пользователем/паролем root/changeit.

  3. (Опционально) Измените преднастроенных пользователей и роли

    При защищённой установке архива имеются преднастроенные пользователи / роли, предназначенные для разных целей — см. Пользователи и роли защищённого Архива.

    При желании добавьте отдельных пользователей для администрирования Keycloak / Wildfly, чтобы развязать роли / ответственности пользователя root архива:

    Имя Пароль Роль(и)
    wildfly-admin changeit user
    ADMINISTRATOR
    keycloak-admin changeit user
    все роли, заданные клиентом realm-management

    с помощью скриптов: - add-keycloak-admin $ docker exec ldap add-keycloak-admin keycloak-admin changeit adding new entry "uid=keycloak-admin,ou=users,dc=dcm4che,dc=org" modifying entry "cn=user,ou=users,dc=dcm4che,dc=org" modifying entry "cn=create-client,ou=realm-management,dc=dcm4che,dc=org" modifying entry "cn=impersonation,ou=realm-management,dc=dcm4che,dc=org" modifying entry "cn=manage-authorization,ou=realm-management,dc=dcm4che,dc=org" modifying entry "cn=manage-clients,ou=realm-management,dc=dcm4che,dc=org" modifying entry "cn=manage-events,ou=realm-management,dc=dcm4che,dc=org" modifying entry "cn=manage-identity-providers,ou=realm-management,dc=dcm4che,dc=org" modifying entry "cn=manage-realm,ou=realm-management,dc=dcm4che,dc=org" modifying entry "cn=manage-users,ou=realm-management,dc=dcm4che,dc=org" modifying entry "cn=realm-admin,ou=realm-management,dc=dcm4che,dc=org" modifying entry "cn=view-authorization,ou=realm-management,dc=dcm4che,dc=org" modifying entry "cn=view-clients,ou=realm-management,dc=dcm4che,dc=org" modifying entry "cn=view-events,ou=realm-management,dc=dcm4che,dc=org" modifying entry "cn=view-identity-providers,ou=realm-management,dc=dcm4che,dc=org" modifying entry "cn=view-realm,ou=realm-management,dc=dcm4che,dc=org" modifying entry "cn=view-users,ou=realm-management,dc=dcm4che,dc=org" modifying entry "cn=query-users,ou=realm-management,dc=dcm4che,dc=org" modifying entry "cn=query-groups,ou=realm-management,dc=dcm4che,dc=org" modifying entry "cn=query-realms,ou=realm-management,dc=dcm4che,dc=org" modifying entry "cn=query-clients,ou=realm-management,dc=dcm4che,dc=org" - add-wildfly-admin $ docker exec ldap add-wildfly-admin wildfly-admin changeit adding new entry "uid=wildfly-admin,ou=users,dc=dcm4che,dc=org" modifying entry "cn=user,ou=users,dc=dcm4che,dc=org" modifying entry "cn=ADMINISTRATOR,ou=users,dc=dcm4che,dc=org"

    что даст

    По умолчанию пользователь root имеет роль ADMINISTRATOR, а также все роли, заданные клиентом realm-management:

    что позволяет получить полный доступ к Realm Admin Console Keycloak и Wildfly Administration Console. Если для вашего приложения требуется развязка функций управления, войдите в Keycloak Admin Console по адресу https://<docker-host>:8843/admin/dcm4che/console под пользователем keycloak-admin и снимите назначения ролей ADMINISTRATOR и клиентских ролей realm-management с пользователя root.

    в результате получится

    По умолчанию Import Users включён (ON), что обеспечивает импорт пользователей LDAP в БД Keycloak и их синхронизацию по настроенным политикам синхронизации. Дополнительно, Sync Registrations также включён (ON) для добавления в LDAP новых пользователей, создаваемых Keycloak. Обе эти настройки можно проверить, перейдя в User Federation >> Ldap и далее в Synchronization Settings на вкладке Ldap Settings

    и редактирование, удаление или добавление новых пользователей через переход в Users:

    Вы можете добавить дополнительные Realm Roles, связанные с конкретной Конфигурация прав UI, и назначить их пользователям, чтобы предоставить им связанные права UI. (Пользователи с ролью root — или значением, заданным переменной окружения SUPER_USER_ROLE для контейнера Архива — имеют доступ ко всем функциям UI независимо от их других ролей и настроенных прав UI.)

  4. (Опционально) Отправьте CT-изображения в Архив с помощью dcm4che/dcm4che-tools, как описано в Run minimum set of archive services on a single host.
  5. Вы можете остановить все 5 контейнеров командой:
    ```
    $ docker stop ldap mariadb keycloak db arc
    ```
    

    и запустить все 5 контейнеров снова командой:

    $ docker start ldap mariadb keycloak db arc

  6. Вы можете удалить остановленные контейнеры командой
    ```
    $ docker rm -v ldap mariadb keycloak db arc
    ```
    

    Вы можете удалить созданную bridge-сеть командой $ docker network rm dcm4chee_network

Использование Docker Compose

В качестве альтернативы Docker Command Line можно использовать Docker Compose для запуска всех 4 контейнеров:

  1. Опишите сервисы в конфигурационном файле docker-compose.yml (напр.):

    yaml version: "3" services: ldap: image: dcm4che/slapd-dcm4chee:2.6.10-34.3 logging: driver: json-file options: max-size: "10m" ports: - "389:389" - "636:636" environment: STORAGE_DIR: /storage/fs1 volumes: - /var/local/dcm4chee-arc/ldap:/var/lib/openldap/openldap-data - /var/local/dcm4chee-arc/slapd.d:/etc/openldap/slapd.d mariadb: image: mariadb:10.11.4 logging: driver: json-file options: max-size: "10m" ports: - "3306:3306" environment: MYSQL_ROOT_PASSWORD: secret MYSQL_DATABASE: keycloak MYSQL_USER: keycloak MYSQL_PASSWORD: keycloak volumes: - /etc/localtime:/etc/localtime:ro - /etc/timezone:/etc/timezone:ro - /var/local/dcm4chee-arc/mysql:/var/lib/mysql keycloak: image: dcm4che/keycloak:26.0.6 logging: driver: json-file options: max-size: "10m" ports: - "8843:8843" environment: KC_HTTPS_PORT: 8843 KC_HOSTNAME: https://<docker-host>:8843 KC_HOSTNAME_BACKCHANNEL_DYNAMIC: 'true' KC_BOOTSTRAP_ADMIN_USERNAME: admin KC_BOOTSTRAP_ADMIN_PASSWORD: changeit KC_DB: mariadb KC_DB_URL_DATABASE: keycloak KC_DB_URL_HOST: mariadb KC_DB_USERNAME: keycloak KC_DB_PASSWORD: keycloak KC_LOG: file ARCHIVE_HOST: <docker-host> KEYCLOAK_WAIT_FOR: ldap:389 mariadb:3306 depends_on: - ldap - mariadb volumes: - /etc/localtime:/etc/localtime:ro - /etc/timezone:/etc/timezone:ro - /var/local/dcm4chee-arc/keycloak:/opt/keycloak/data db: image: dcm4che/postgres-dcm4chee:17.4-34 logging: driver: json-file options: max-size: "10m" ports: - "5432:5432" environment: POSTGRES_DB: pacsdb POSTGRES_USER: pacs POSTGRES_PASSWORD: pacs volumes: - /etc/localtime:/etc/localtime:ro - /etc/timezone:/etc/timezone:ro - /var/local/dcm4chee-arc/db:/var/lib/postgresql/data arc: image: dcm4che/dcm4chee-arc-psql:5.34.3-secure ports: - "8080:8080" - "8443:8443" - "9990:9990" - "9993:9993" - "11112:11112" - "2762:2762" - "2575:2575" - "12575:12575" environment: POSTGRES_DB: pacsdb POSTGRES_USER: pacs POSTGRES_PASSWORD: pacs AUTH_SERVER_URL: https://keycloak:8843 UI_AUTH_SERVER_URL: https://<docker-host>:8843 WILDFLY_CHOWN: /storage WILDFLY_WAIT_FOR: ldap:389 db:5432 keycloak:8843 depends_on: - ldap - keycloak - db volumes: - /etc/localtime:/etc/localtime:ro - /etc/timezone:/etc/timezone:ro - /var/local/dcm4chee-arc/wildfly:/opt/wildfly/standalone - /var/local/dcm4chee-arc/storage:/storage вам необходимо заменить \ на имя хоста docker-хоста, которое должно разрешаться вашим DNS-сервером.

Все доступные переменные окружения для контейнеров: - Slapd - PostgreSQL - Archive - Keycloak - MariaDB

Примечание: Если возникают сложности с запуском сервиса архива из-за There is insufficient memory for the Java Runtime Environment to continue. Cannot create GC thread. Out of system resources. добавьте следующую опцию к сервису arc security_opt: - seccomp:unconfined

  1. Создайте и запустите 5 контейнеров командой

    console $ docker-compose -p dcm4chee up -d Creating network "dcm4chee_default" with the default driver Creating dcm4chee_ldap_1 ... done Creating dcm4chee_mariadb_1 ... done Creating dcm4chee_db_1 ... done Creating dcm4chee_keycloak_1 ... done Creating dcm4chee_arc_1 ... done в каталоге, содержащем docker-compose.yml.

  2. Зарегистрируйте UI Архива как OIDC-клиент в Keycloak, как описано выше.
  3. Зарегистрируйте WildFly Administration Console как OIDC-клиент в Keycloak, как описано выше.
  4. Вы можете остановить все 5 контейнеров командой:
    ```console
    $ docker-compose -p dcm4chee stop
    Stopping dcm4chee_arc_1      ... done
    Stopping dcm4chee_keycloak_1 ... done
    Stopping dcm4chee_ldap_1     ... done
    Stopping dcm4chee_mariadb_1  ... done
    Stopping dcm4chee_db_1       ... done
    ```
    

    и запустить все 5 контейнеров снова командой: console $ docker-compose -p dcm4chee start Starting ldap ... done Starting mariadb ... done Starting keycloak ... done Starting db ... done Starting arc ... done

  5. Вы можете остановить и удалить все 5 контейнеров командой
    ```console
    $ docker-compose -p dcm4chee down
    Stopping dcm4chee_arc_1      ... done
    Stopping dcm4chee_keycloak_1 ... done
    Stopping dcm4chee_ldap_1     ... done
    Stopping dcm4chee_mariadb_1  ... done
    Stopping dcm4chee_db_1       ... done
    Removing dcm4chee_arc_1      ... done
    Removing dcm4chee_keycloak_1 ... done
    Removing dcm4chee_ldap_1     ... done
    Removing dcm4chee_mariadb_1  ... done
    Removing dcm4chee_db_1       ... done
    Removing network dcm4chee_network
    ```