Установка платформы TESSA в среде управления контейнерами Docker¶
Вы можете установить типовую версию платформы на локальном компьютере для использования в целях тестирования или для продуктовой эксплуатации без развёртывания системы в виртуальной машине. Для этого используется среда управления контейнерами Docker
. В текущей инструкции рассматривается установка для ОС Windows
, внутри которой будут запущены контейнеры Docker
.
Note
Контейнеры Docker
для приложения TESSA работают в заранее настроенной среде с использованием окружения ОС Alpine Linux
. При этом система Docker
может быть запущена не только на хост-машине ОС Windows
, но и на macOS
, и на любом дистрибутиве Linux
, который поддерживается приложением Docker
.
Note
Поскольку контейнер определяет только окружение ОС Linux
, но не ядро операционной системы, и контейнер не является виртуальной машиной (а своего рода маппингом папок, областей памяти и системных вызовов), то при запуске Docker
, например, на хост-машине под ОС Debian
, контейнер также будет исполняться на ОС Debian
, несмотря на то, что окружением, которое определено в контейнере, является ОС Alpine Linux
. Данная инструкция не затрагивает установку Docker
на хост-машинах macOS
или Linux
, и создание контейнеров приложения TESSA на ОС Linux
, отличной от окружения Alpine Linux
.
Warning
На текущий момент зафиксированы проблемы с использованием Docker Desktop
на Windows 10
версии 20H1
(май 2020 г.), в которой в настройках Docker Desktop
(Settings
в контекстном меню на значке в системном трее) указан Use the WSL 2 based engine
. Если вы также наблюдаете ошибку при установке на этапе Checking connection to web service
при выполнении скрипта install.bat
, то отключите этот флаг, Docker
перезапустится, и запустите скрипт повторно.
Установка с использованием Docker Desktop на ОС Windows¶
Скачайте и установите Docker Desktop
(на сайте потребуется зарегистрироваться, регистрация бесплатна): https://www.docker.com/products/docker-desktop
После установки потребуется перезагрузиться. Согласитесь при запросе на включение Hyper V
при первом запуске.
Warning
После включения компонента Hyper V
виртуальные машины VirtualBox
и VMWare
перестанут функционировать. Вы можете отключить Hyper V
в настройках компонентов Windows
(и перезагрузиться), чтобы виртуальные машины снова работали. Потом для работы Docker
можно снова запустить Docker Desktop
, который предложит включить Hyper V
, чтобы работал он.
Установка с использованием сборки tessa¶
Откройте папку со сборкой TESSA, в ней в папке Docker
скопируйте подпапку tessa
на ваш локальный диск, из которого будет запускаться и настраиваться установленная версия системы. При этом дополнительных файлов в этой папке создано не будет, поскольку контейнеры создаются и хранятся в локальном реестре Docker
, который располагается в папках пользователя (обратитесь к инструкции Docker
на сайте https://docs.docker.com/).
Tip
Имя установленной системы зависит от имени папки, в которую распаковано содержимое. Например, папка tessa
создаёт и управляет системой с именем tessa
. Скопируйте содержимое этой папки в папку с другим именем, расположенную рядом, и запускайте скрипты из папок с разными именами, чтобы одновременно иметь несколько независимых установленных систем на компьютере.
Скопируйте ваш файл лицензии *.jlic
или *.tlic
в текущую папку с системой (папка tessa
).
Запустите скрипт install.bat
, нажмите любую клавишу для начала установки и дождитесь её завершения.
Tip
По умолчанию система скачивает и устанавливает последнюю сборку платформы TESSA, опубликованную в репозитории Docker Hub
. Вы можете перед установкой отредактировать файл docker-compose.yml
, указав конкретные версии образов syntellect/tessa:***
(свойство image
), добавив номер сборки и знак дефиса, например: syntellect/tessa:4.0.0-web
. Версии для образов web
, chronos
, jinni
, nginx
и tadmin
должны совпадать. По аналогии можно использовать теги syntellect/tessa:4.0-web
для последней опубликованной сборки 4.0.x
, syntellect/tessa:4-web
для последней опубликованной сборки 4.x.x
, и по аналогии для других версий системы и других образов.
Перед завершением скрипт выведет на экран порт такого вида:
0.0.0.0:32768
Адрес веб-сервиса на вашем компьютере будет следующим (укажите порт, который вывел скрипт): https://localhost:32768
Повторно вывести порт можно, запустив скрипт start.bat
.
Для использования web-клиента откройте эту ссылку в адресе веб-браузера. Введите логин admin
и пароль admin
для пользователя, созданного по умолчанию.
Для использования desktop-клиента установите Tessa Applications
через msi
-инсталлятор из сборки платформы в папке Setup
(подпапка ru-RU
для русскоязычной версии, в ней подпапка x64
для 64-битных ОС). В качестве адреса сервера укажите ссылку выше, в качестве кода сервера задайте docker
. Логин admin
, пароль admin
(их можно указать на вкладке Серверы
, чтобы не вводить каждый раз).
На этом установка системы завершена. Ниже приведена информация по управлению запущенными контейнерами и по дополнительным настройкам системы в контейнерах.
Управление запущенными контейнерами¶
Здесь приводится справочная информация по использованию скриптов в папке с приложением tessa
, в т.ч. по запуску, остановке, удалению контейнеров и других.
-
Для остановки без удаления данных (из базы данных и файловых хранилищ) вызовите скрипт
stop.bat
. -
Для повторного запуска вызовите
start.bat
, новый адрес порта будет отображён в консоли (или предыдущий адрес, если сервисы не останавливались). -
После перезагрузки контейнеры будут остановлены, для их запуска вызовите
start.bat
после того, как на значкеDocker
в трее будет всплывающая подсказкаDocker Desktop is running
. -
Для остановки и удаления данных из контейнеров вызовите
uninstall.bat
. -
Для повторной установки “чистой” системы вызовите
install.bat
. Предварительно вызыватьuninstall.bat
не нужно, данные предыдущей установки будут удалены, если присутствовали. -
Для полной очистки
Docker
и всех его кэшей: в меню на значкеDocker
в трее выберитеSettings
, перейдите на вкладкуReset
и выберитеReset to factory defaults
. Дождитесь завершения очистки и заново вызовитеinstall.bat
. -
Посредством скрипта
tadmin.bat
можно из командной строки выполнять действия с утилитойtadmin
, для которой укажите адрес подключения к сервисам https://nginx. Выполнение производится в контейнере утилиты, где доступны папкиConfiguration
иFixes
из той версии сборки, которая была установлена. Пример:tadmin ImportCards "Configuration/Cards/Settings/License (settings).jcard" -c -a:https://nginx -u:admin -p:admin
Создание образов Docker с использованием дистрибутива TESSA alpine-redist¶
Вы можете создать собственные образы Docker, содержащие сборку TESSA требуемой версии без использования образов, опубликованных в Docker Hub
.
Note
При работе с командами Docker
рекомендуется использовать в качестве терминала cmd
или PowerShell
. Далее при описании используется PowerShell
.
Создайте папку на локальном диске (далее эта папка указана как С:\tessa
) и распакуйте в неё архив с дистрибутивом TESSA для Alpine Linux
. Он называется tessa-alpine-4.0-0.7z
, где 4.0
- версия релиза платформы, и 0
на конце - номер патча.
Также у вас должен быть распакован архив с основной сборкой TESSA, именуемый как tessa-4.0-0.7z
(где 4.0
- версия релиза платформы, и 0
на конце - номер патча) в любую папку (далее - C:\tessa-build
).
Note
Для вашего релиза и патча архив будет называться соответствующим образом. Если у вас его нет, то запросите его получение у вендора.
- Скопируйте в папку
C:\tessa
папкуauthorized_keys
из папки[путь до основной сборки]\Docker\tessa\authorized_keys
, т.е. должна быть создана папкаC:\tessa\authorized_keys
. - Скопируйте в папку
C:\tessa\platform
папкуjinni
изC:\tessa-build\linux
, т.е. должна быть создана папкаC:\tessa\platform\jinni
. - Скопируйте в папку
C:\tessa\docker
папкуjinni
изC:\tessa-build\Docker
, т.е. должна быть создана папкаC:\tessa\docker\jinni
. - Скопируйте в папку
C:\tessa
содержимое папкиC:\tessa\docker\tessa-alpine
с заменой файлов. - Скопируйте в папку
C:\tessa
содержимое папкиC:\tessa\docker\tessa
. - Скопируйте файл лицензии с расширением
.jlic
или.tlic
в папкуC:\tessa
.
Итоговый дистрибутив должен выглядеть так:
Сборка Chronos¶
Перейдите в папку C:\tessa\platform
и скопируйте туда файл с именем C:\tessa\docker\chronos\Dockerfile
.
-
Убедитесь, что в конфигурационном файле
C:\tessa\platform\chronos\app-db.json
в параметреHost
указано имя контейнераdb
для СУБД PostgreSQL, а также указаны имя базы данныхDatabase
, логинUser ID
и парольPassword
пользователя в соответствии с тем, что прописано в файлеdocker-compose.yml
в блокеdb:
. -
Убедитесь, что в конфигурационном файле
C:\tessa\platform\chronos\app-ext.json
в строке подключения к сервису Redis указана настройка"Redis": "redis"
, где значением является имя контейнераredis
(в соответствии сdocker-compose.yml
, где он обозначен в блокеredis:
). -
Убедитесь, что в конфигурационном файле
C:\tessa\platform\chronos\app-ext.json
указана настройка"LicenseFile": "/var/lic/*.?lic"
, содержащая путь к файлам лицензии.
В терминале перейдите в папку C:\tessa\platform
и выполните команду для сборки образа контейнера (container image) по скопированному ранее файлу Dockerfile
:
docker build -t syntellect/tessa:chronos .
Сборка nginx¶
Перейдите в папку C:\tessa\nginx
и скопируйте туда файл с именем C:\tessa\docker\nginx\Dockerfile
.
Откройте файл C:\tessa\nginx\default.conf
.
-
Убедитесь, что в начале этого файла указана строка:
server web:5000;
Если вместо
web
указанlocalhost
, то необходимо заменить его наweb
. -
Убедитесь, что под этой строкой есть строка:
server webbi:19857;
Если вместо
webbi:19857
указанlocalhost:19857
, то замените, как указано выше.
В терминале перейдите в папку C:\tessa\nginx
и выполните команду для сборки образа контейнера (container image) по скопированному ранее файлу Dockerfile
:
docker build -t syntellect/tessa:nginx .
Сборка tadmin¶
Перейдите в папку C:\tessa\build
и скопируйте туда файл с именем C:\tessa\docker\tadmin\Dockerfile
.
-
Убедитесь, что в конфигурационном файле утилиты
tadmin
, а именноC:\tessa\build\linux\tools\app-db.json
, строка подключения к базе данных соответствует значениям в файлеC:\tessa\platform\chronos\app-db.json
(который настроен согласноdocker-compose.yml
): -
Убедитесь, что в конфигурационном файле
C:\tessa\build\linux\tools\app-ext.json
строка подключения к Redis соответствует таковой в файлеC:\tessa\platform\chronos\app-ext.json
(который настроен согласноdocker-compose.yml
):
В терминале перейдите в папку C:\tessa\build
и выполните команду для сборки образа контейнера (container image) по скопированному ранее файлу Dockerfile
:
docker build -t syntellect/tessa:tadmin .
Сборка веб-сервиса web
¶
Перейдите в папку C:\tessa\platform
и скопируйте туда файл с именем C:\tessa\docker\web\Dockerfile
.
-
Убедитесь, что в конфигурационном файле веб-сервиса
web
, а именноC:\tessa\platform\web\app-db.json
, строка подключения к базе данных соответствует значениям в файлеC:\tessa\platform\chronos\app-db.json
(который настроен согласноdocker-compose.yml
): -
Убедитесь, что в конфигурационном файле
C:\tessa\platform\web\app-ext.json
строка подключения к Redis соответствует таковой в файлеC:\tessa\platform\chronos\app-ext.json
(который настроен согласноdocker-compose.yml
):
В терминале перейдите в папку C:\tessa\platform
и выполните команду для сборки образа контейнера (container image) по скопированному ранее файлу Dockerfile
:
docker build -t syntellect/tessa:web .
Сборка веб-сервиса webbi
для поддержки режима технического обслуживания системы¶
Перейдите в папку C:\tessa\platform
и скопируйте туда файл с именем C:\tessa\docker\webbi\Dockerfile
.
-
Убедитесь, что в конфигурационном файле
C:\tessa\platform\webbi\app-ext.json
строка подключения к Redis соответствует таковой в файлеC:\tessa\platform\chronos\app-ext.json
(который настроен согласноdocker-compose.yml
). -
Убедитесь, что в конфигурационном файле
C:\tessa\platform\webbi\app-ext.json
команда перезапускаnginx
указана как пустая строка:"ReloadCommand": ""
.
В терминале перейдите в папку C:\tessa\platform
и выполните команду для сборки образа контейнера (container image) по скопированному ранее файлу Dockerfile
:
docker build -t syntellect/tessa:webbi .
Сборка веб-сервиса jinni
для работы с документами¶
Перейдите в папку C:\tessa\platform
и скопируйте туда файл с именем C:\tessa\docker\jinni\Dockerfile
.
Tip
При необходимости настроить конфигурацию сервиса jinni, ограничив ему набор используемых функций (например, выключить поддержку распознавания OCR), выполните python
скрипт по инструкции в ссылке, и скопируйте заново файл C:\tessa\docker\jinni\Dockerfile
в C:\tessa\platform
.
- Убедитесь, что в конфигурационном файле сервиса
jinni
, а именноC:\tessa\platform\jinni\app-ext.json
, строка подключения к Redis соответствует таковой в файлеC:\tessa\platform\chronos\app-ext.json
(который настроен согласноdocker-compose.yml
).
В терминале перейдите в папку C:\tessa\platform
и выполните команду для сборки образа контейнера (container image) по скопированному ранее файлу Dockerfile
:
docker build -t syntellect/tessa:jinni .
Если требуется использовать несколько копий контейнера jinni
для распределения нагрузки и отказоустойчивости, то модифицируйте файл docker-compose.yml
, задав уникальное имя каждому контейнеру (jinni1
, jinni2
и т.п.) и указав уникальные публичные адреса (endpoints) для доступа к сервисам jinni
:
jinni1:
image: syntellect/tessa:jinni
depends_on:
redis:
condition: service_healthy
volumes:
- jinni1:/root/platform/jinni
- lic:/var/lic
environment:
- JINNI_ENDPOINT=http://jinni1:5000
jinni2:
image: syntellect/tessa:jinni
depends_on:
redis:
condition: service_healthy
volumes:
- jinni2:/root/platform/jinni
- lic:/var/lic
environment:
- JINNI_ENDPOINT=http://jinni2:5000
Сборка веб-сервиса monitor
для трассировки и мониторинга системы¶
Перейдите в папку C:\tessa\platform
и скопируйте туда файл с именем C:\tessa\docker\monitor\Dockerfile
.
В терминале перейдите в папку C:\tessa\platform
и выполните команду для сборки образа контейнера (container image) по скопированному ранее файлу Dockerfile
:
docker build -t syntellect/tessa:monitor .
Сборка веб-сервиса prometheus
для хранения данных мониторинга системы¶
Перейдите в папку C:\tessa\prometheus
и скопируйте туда файл с именем C:\tessa\docker\prometheus\Dockerfile
.
В терминале перейдите в папку C:\tessa\prometheus
и выполните команду для сборки образа контейнера (container image) по скопированному ранее файлу Dockerfile
:
docker build -t syntellect/tessa:prometheus .
Сборка веб-сервиса grafana
для отображения графиков по данным мониторинга системы¶
Перейдите в папку C:\tessa\grafana
и скопируйте туда файл с именем C:\tessa\docker\grafana\Dockerfile
.
В терминале перейдите в папку C:\tessa\grafana
и выполните команду для сборки образа контейнера (container image) по скопированному ранее файлу Dockerfile
:
docker build -t syntellect/tessa:grafana .
Сборка веб-сервиса jaeger
для отображения данных трассировки системы¶
В терминале перейдите в папку C:\tessa\docker\jaeger
и выполните команду для сборки образа контейнера (container image) по расположенному там файлу Dockerfile
:
docker build -t syntellect/tessa:jaeger .
Установка и запуск контейнеров¶
В терминале перейдите в папку C:\tessa
и выполните команду для сборки приложения Docker Compose (компонент Docker для создания приложений - связанных контейнеров) с учётом расположенного в этой папке файла с лицензией (.jlic
или .tlic
).
docker-compose -f docker-compose.yml build --no-cache
Note
Имя приложения Docker Compose определяется в соответствии с именем папки, в которой расположен файл docker-compose.yml
, т.е. для папки C:\tessa
указано имя tessa
.
Чтобы переименовать приложение, переименуйте папку C:\tessa
. Важно только имя вышестоящей папки, т.е., например, она может быть расположена по пути C:\Docker\tessa
.
Создайте контейнеры при помощи команды в терминале:
docker-compose -f docker-compose.yml up --no-start
Docker
самостоятельно соберёт недостающие контейнеры с СУБД PostgreSQL и Redis внутри приложения Docker Compose, и на их основе создаст необходимые контейнеры.
Запустите контейнеры в приложении Docker Compose при помощи команды в терминале:
docker-compose -f docker-compose.yml start db web nginx tadmin redis webbi
Warning
Контейнер lic
не требуется запускать. Контейнеры chronos
, jinni
, monitor
, prometheus
, grafana
и jaeger
будут запущены позже.
Если установка прошла успешно, контейнеры в Docker Desktop
должны выглядеть так:
Tip
Возможно создать новый экземпляр системы, в которой будут другие данные (СУБД PostgreSQL с отдельной базой данных, Redis, файловое хранилище) и может быть другая лицензия, но используются копии контейнеров с бинарными данными (та же версия платформы и расширения).
Для этого создайте папку с другим именем (например, C:\tessa2
), в которую скопируйте только файл лицензии (.jlic
или .tlic
), Dockerfile
и docker-compose.yml
из папки C:\tessa
. После чего перейдите в терминале в эту папку и повторите вызовы docker-compose
, указанные в этом подразделе, и далее установите систему.
Таким образом, будет создано отдельное приложение Docker Compose
со своими независимыми экземплярами контейнеров. В результате имеется несколько независимых установленных систем на компьютере.
Проверка работы контейнеров и завершение установки TESSA¶
Проверьте подключение утилиты tadmin
к базе данных (все команды должны быть выполнены в терминале в папке C:\tessa
с файлом docker-compose.yml
):
docker-compose -f docker-compose.yml exec tadmin linux/tools/tadmin CheckDatabase
Если связь с базой данных прошла без ошибок, в терминале будет результат:
Установите систему TESSA скриптом setup.sh
, выволнив в терминале:
docker-compose -f docker-compose.yml exec tadmin linux/setup.sh -db:tessa -cdb -a:https://nginx -tp:/root/build/linux/tools -f:/root/platform/files -wp:/root/platform/web -cp:/root/platform/chronos
- Адрес веб-сервиса указывается как
https://nginx
(гдеnginx
- имя контейнера вdocker-compose.yml
). - Имя базы данных должно быть таким же, какое указано в файлах
app-db.json
в подразделах выше (в соответствии с указанным именем БД вdocker-compose.yml
). - Остальные строки оставьте по умолчанию для данной установки системы.
При успешной установке в терминале будет выведена строка:
Перезапустите контейнер веб-сервиса web
, выполнив в терминале:
docker-compose -f docker-compose.yml restart web
Запустите Сhronos
, веб-сервис jinni
, а также сервисы monitor
, prometheus
, grafana
и jaeger
, выполнив в терминале:
docker-compose -f docker-compose.yml start chronos jinni monitor prometheus grafana jaeger
Установка завершена. Веб-клиент платформы TESSA, установленный в Docker, будет доступен из вашего веб-браузера по адресу https://localhost:номер_порта
. Чтобы узнать номер порта, выполните следующую команду в терминале:
docker-compose -f docker-compose.yml port nginx 443
Результат выполнения этой команды:
Экземпляр prometheus
(для отображения телеметрии в исходном виде, которая передаётся в grafana
) будет доступен из вашего веб-браузера по адресу http://localhost:номер_порта
. Чтобы узнать номер порта, выполните следующую команду в терминале:
docker-compose -f docker-compose.yml port prometheus 9090
Экземпляр grafana
(для вывода счётчиков производительности) будет доступен из вашего веб-браузера по адресу http://localhost:номер_порта
. Чтобы узнать номер порта, выполните следующую команду в терминале:
docker-compose -f docker-compose.yml port grafana 3000
Экземпляр jaeger
(для отображения трассировки расширений) будет доступен по адресу http://localhost:номер_порта
. Чтобы узнать номер порта, выполните следующую команду в терминале:
docker-compose -f docker-compose.yml port jaeger 16686
Настройка логирования и обновление расширений¶
Для удобства просмотра логов log.txt
и обновления библиотек серверных расширений extensions
можно создать связи для папок в контейнерах и папок в Windows
, вложенных в локальную папку с файлом docker-compose.yml
, из которой вы выполняли установку системы в Docker
.
Сначала требуется определить имена контейнеров и убедиться, что они функционируют. Откройте командную строку Windows
в папке с файлом docker-compose.yml
. Здесь подразумевается, что установка системы в Docker
уже была выполнена. Определите имена запущенных контейнеров:
docker ps -a
Tip
Ключ -a
выводит помимо запущенных контейнеров также созданные контейнеры, которые не запущены в настоящий момент. Можно опустить этот ключ, если надо отобразить только запущенные контейнеры.
По умолчанию имя контейнера для веб-сервиса называется tessa_web_1
, где tessa
- имя папки с файлом docker-compose.yml
(обычно её имя изменяют для второй установки системы в Docker
на том же сервере), web
- имя контейнера с веб-сервисом, указанное внутри файла docker-compose.yml
, 1
- номер экземпляра контейнера, по умолчанию все контейнеры запускаются в единственном экземпляре.
Аналогично имя контейнера для сервиса Chronos
называется tessa_chronos_1
и для веб-сервиса jinni
называется tessa_jinni_1
. Если у вас используются другие названия, то указывайте их в скриптах ниже.
Теперь запустите контейнеры, если они не запущены (скрипт start.bat
) и проверьте, что корректно выполняется открытие консольной оболочки ash
(аналог bash
для дистрибутива Alpine Linux
). В следующем примере открывается консоль для контейнера tessa_web_1
, далее в нём выводится список файлов в папке веб-сервиса ls
, и консоль закрывается exit
:
docker exec -it tessa_web_1 ash
ls
exit
Аналогичную проверку выполните для сервиса Chronos
в контейнере tessa_chronos_1
и веб-сервиса jinni
в контейнере tessa_jinni_1
.
Откройте командную строку Windows
в папке с файлом docker-compose.yml
.
Скопируйте папку с серверными расширениями из контейнера с веб-сервисом следующей командой. При этом в текущей папке будет создана подпапка extensions
с библиотеками расширений и файлом extensions.xml
. В контейнере Chronos
эта папка полностью идентична, поэтому достаточно скопировать из веб-сервиса.
docker cp tessa_web_1:/root/platform/web/extensions .
Note
При обратном копировании командой docker cp
, когда файлы были скопированы из папки Windows
в контейнер, такие файлы будут сохранены только до следующего запуска контейнера (скрипт start.bat
или команда docker-compose up
). Если вы хотите копировать некоторые файлы настроек при каждом запуске контейнера, то доработайте скрипт start.bat
по своему усмотрению и запускайте его каждый раз после запуска сервера.
Скопируйте файлы NLog.config
из контейнеров веб-сервиса, сервиса Chronos
и веб-сервиса Jinni в подпапки logs_chronos
, logs_web
и logs_jinni
, предварительно их необходимо создать командой mkdir
:
mkdir logs_chronos logs_web logs_jinni
docker cp tessa_chronos_1:/root/platform/chronos/logs/NLog.config ./logs_chronos
docker cp tessa_web_1:/root/platform/web/logs/NLog.config ./logs_web
docker cp tessa_jinni_1:/root/platform/jinni/logs/NLog.config ./logs_jinni
В файлах NLog.config
, который появится в подпапках logs_chronos
, logs_web
и logs_jinni
, вы можете настроить логирование по своим правилам. Например, чтобы логируемые сообщения записывались в отдельные файлы каждый день с созданием подпапок с номером месяца и года. Подробная информация по настройкам NLog.config
доступна в документации по библиотеке NLog
: https://github.com/NLog/NLog/wiki/Configuration-file
Для создания связи между локальной папкой в Windows
и папками в контейнере потребуется отредактировать файл docker-compose.yml
, в который добавить в разделы volumes
соответствующих контейнеров строку следующего вида (не добавляйте её, это пример):
volumes:
- ./ПАПКА_В_Windows:/root/platform/ПАПКА_В_КОНТЕЙНЕРЕ
Где /root/platform
- путь к домашней папке в контейнерах приложения TESSA.
Warning
После настройки связи каждый раз, когда контейнер будет запущен (скрипт start.bat
или команда docker-compose up
), содержимое соответствующей папки в контейнере будет очищено. После этого выполняется копирование всех файлов и подпапок из папки в Windows
в папку в контейнере. Далее при изменении этой папки в контейнере она изменяется в Windows
и в любых других контейнерах, связанных с той же папкой в Windows
. Также, если вы изменяете папку в Windows
, то она автоматически изменяется во всех связанных контейнерах, т.е. связь двусторонняя.
Теперь отредактируйте docker-compose.yml
, добавив связи для папок с логами в текущей папке с файлом docker-compose.yml
.
-
Папка
extensions
содержит расширения, одинаковые для веб-сервиса иChronos
. -
Папка
logs_web
будет содержать логи веб-сервиса, по умолчанию это файлlog.txt
. -
Папка
logs_chronos
будет содержать логиChronos
, по умолчанию это файлlog.txt
. -
Папка
logs_jinni
будет содержать логи веб-сервиса Jinni, по умолчанию это файлlog.txt
.
Троеточием обозначены пропущенные строки, которые будут перед строками связей, которые требуется добавить (строка связи начинается со знака дефиса):
web:
...
volumes:
...
- ./extensions:/root/platform/web/extensions
- ./logs_web:/root/platform/web/logs
...
chronos:
...
volumes:
...
- ./extensions:/root/platform/chronos/extensions
- ./logs_chronos:/root/platform/chronos/logs
...
jinni:
...
volumes:
...
- ./logs_jinni:/root/platform/jinni/logs
Для применения изменений остановите контейнеры скриптом stop.bat
и снова запустите их скриптом start.bat
.
Note
Первый раз при запуске контейнера с привязанными папками может отобразиться предупреждение вида Share disk C:\ with container?
, подтвердите его, при этом потребуется ввести пароль администратора Windows
. Если после этого вы получите ошибку в окне консоли вида Drive sharing seems blocked by a firewall
, то настройте правила вашего firewall
в соответствии с инструкцией: https://docs.docker.com/docker-for-windows/#firewall-rules-for-shared-drives (обычно требуется отключить блокировку входящих соединений TCP по порту 445). После настройки повторите команду запуска контейнеров.
Tip
Также можно разрешить общий доступ из контейнера к дискам Windows
, открыв окно Settings
в контекстном меню Docker Desktop
в трее, и на вкладке Shared Drives
выбрав нужную букву диска и нажав Apply
. Если вы не настроили firewall
, и он блокирует порты, то вы также получите предупреждение. Docker
гарантирует, что контейнер получает доступ к указанным подпапкам Windows
, в соответствии с настроенной связью в docker-compose.yml
, но разрешить доступ требуется для всего диска C:\
(или другого диска, где расположен docker-compose.yml
).
Когда необходимо изменить файлы конфигурации или обновить расширения, и приложение TESSA уже работает в контейнерах Docker
, то для применения изменений потребуется остановить stop.bat
и снова запустить приложение start.bat
. Вы можете дорабатывать эти скрипты по своим требованиям.