Docker образ для RedDatabase версии 3.0
Собираем образ командой билд с именем centos-rdb-3.0 для версии RDB 3.0:
$ docker build . -t centos-rdb-3.0 --network host
Перед сборкой образа нужно проверить доступность URL сборок RDB: http://builds.red-soft.biz/release_hub/rdb30
В Docker файле образа можно настроить параметры дистрибутива, такие как версия релиза (RELEASE), сборка (BUILD) и архитектура проуессора (ARCH).
Параметр --host позволяет запустить сборку в сети хост машины (необходимо для доступности ресурса сборок).
Проверим что образ в реестре:
$ docker images | grep centos-rdb
centos-rdb-3.0 latest 942a733054d3 1 hours ago 281MB
Запустим контейнер командой с пробросом портов и привязкой каталога с файлами БД:
$ docker run -itd --rm --name centos-rdb-30 -p 5050:3050 -v /srv/db/fb30:/data -e ALIAS_DB=test_db=test.fdb centos-rdb-3.0
RDB3 позволяет запуститься в одной из 3-ёх архитектурах сервера:
- Super: исключительно один серверный процесс обслуживает все подключения, используя потоки для обработки запросов; общий пул для всех соединений; общий кеш страниц на уровне базы.
- SuperСlassic: базы данных открываются одним серверным процессом, но доступ не исключительный - embedded процесс может открыть одновременно ту же базу; подключения обрабатываются потоками, запущенными из общего пула, каждый из которых имеет свой собственный страничный кэш базы данных.
- Classic: отдельный процесс на каждое соединение с БД; каждая база данных может быть открыта несколькими процессами (включая локальные для embedded доступа); отдельный кеш страниц на каждое соединение
Проверим что контйнер запущен командой:
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
8aa7e8c66627 centos-rdb-3.0 "/docker-entrypoin..." About an hour ago Up About an hour 0.0.0.0:5050->3050/tcp centos-rdb-30
Проверим утилитой isql что есть доступ к БД по порту 4050:
$ ./isql 'localhost/5050:test_db' -u sysdba -p masterkey
Для работы оповещений из БД нужно дополнительно указать TCP порт через параметр REMOTE_AUX_PORT из диапазона 6000-7000 и открыть его хост машине.
Перед загрузкой авторизуемся командой docker login.
После проставим тэг образу:
$ docker tag centos-rdb-3.0 javaronok/centos-rdb-3.0
и загрузим в репозиторий:
$ docker push javaronok/centos-rdb-3.0
Загружаем образ командой: docker pull javaronok/centos-rdb-3.0
и запускаем контейнер:
$ docker run -itd --name centos-rdb-30 -p 5050:3050 -v /srv/db/fb30:/data -e SERVER_MODE=Super javaronok/centos-rdb-3.0