Предыстория
По определенным обстоятельствам потребовалось создать имитацию всего контура тестируемого нами ПО, контур включает в себя множество различных сервисов, но в этой статье остановимся на базе данных, так как процесс ее развертывания наиболее нитереснен.
Процесс по умолчанию
По умолчанию создание базы Oracle в контейнере Docker не требует большого количества шагов:
Склонировать репозиторий
Скачать с оффициального сайта бинарные файлы
Переместить скачанные бинарные файлы в определенное место в репозитории
Запустить процесс сборки образа через специальную утилиту
Процесс описан в документации репозитория
Реальный опыт
При попытке выполнения шагов возникают проблемы уже начиная со 2 этапа.
Первая проблема - это блокировка оффициальных сайтов Oracle в РФ. Решается она использованием любого VPN расширения для браузера. И так получили репозиторий и технический доступ для скачивания бинарных файлов, но для их получения потребуется аккаунт Oracle. Для решения проблемы с аккаунтом пользуемся VPN + любой сервис временной почты. В процессе создания потребуется вводить данные о компании, географическом положении и т.п. Фактически введенные данные не проверяются, так что писать можно практически что угодно.
Далее запускаем процесс сборки образа (в нашем случае команда выглядит следующим образом)
bash buildContainerImage.sh -i -x -v 21.3.0
Иии... Получаем ошибку о не достаточном месте на диске (Сборка производилась на виртуальной машине Ubuntu 20.04 с 50ГБ места на диске)
Ошибка говорит нам о том, что для созданного образа понадобиться целых 21ГБ свободного места!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
checkSpace.sh: ERROR - There is not enough space available in the docker container.
checkSpace.sh: The container needs at least 21 GB , but only 15 available.
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Эта проблема уже не относится к теме санкций и быстро решилась расширением виртуального диска, но для полноты рассказа было принято решение ее здесь осветить, так как по итогу полученный образ занимет ~ 6.5ГБ
После решения проблемы со свободным местом и получением всех необходимых файлов можно вновь запускать сборку, но в этот раз возникает новая ошибка. В процессе сборки требуется доступ к одному из ресурсов Oracle, а так как расширение с VPN работает только на браузер придется прибегать к более серьезным мерам и использовать отдельную VPN сеть.
В нашем случае воспользовались wireguard и личным сервером знакомого. Для настройки использовалась статья, а требуемый конфиурационный файл можно скачать на самом cервере
Наконец, после решения всех проблем образ собрался.
Немного о запуске контейнера
Так же хочется упомянуть процесс запуска контейнера, так как присутствуют нюансы.
Предлагаемая в репозитроии строка запуска не подходит для собраной нами версии. после проб и ошибок выяснилось, что переменная окружения
ORACLE_SID
должна быть опеределенной для каждой версии базы данных, в нашем случаееXE
-
После запуска появляется доступ к системе управления/мониторинга базы на
https://localhost:5500/em/
, где нас встречат экран входа в систему, для успешной авторизации требуется вводить данные:Username: SYSTEM Один из пользователй по умолчанию для всех баз Oracle
Password: тот что указан в переменной окружения
ORACLE_PWD
при запуске контейнераContainer Name: CDB$ROOT Та же история, что и с
ORACLE_SID
(необоснованно жестко заданные значения aka hardcode)
Комментарии (8)
sergarcada
09.11.2023 14:03+2Смысл статьи можно свести к двум советам - пользуйтесь VPN и проверкой орфографии.
Johan_Palych
09.11.2023 14:03Развертывание базы данных Oracle в Docker в условиях санкций
При попытке выполнения шагов возникают проблемы уже начиная со 2 этапа.Реальный опыт без VPN и остальной ....и в РФ минут за 40.
Была чистая виртуалка с Debian 12 Bookworm - netinstall c openssh-server
Поставил podman из репы:
https://software.opensuse.org/download.html?project=devel%3Akubic%3Alibcontainers%3Astable&package=podman
podman machine set --memory 4096(для нормального теста)podman pull container-registry.oracle.com/database/free:latest
Про podman volume create --label и остальные донастройки писать не буду. Лень. Целая статья получится.
mkdir ~/.local/bin && cd ~/.local/bin Нормально пускает: https://www.oracle.com/database/sqldeveloper/technologies/sqlcl/download/ wget https://download.oracle.com/otn_software/java/sqldeveloper/sqlcl-latest.zip && unzip sqlcl-latest.zip cd ~/.local/bin/sqlcl/bin
Подключаемся к 23c Database
sergarcada
09.11.2023 14:03Попробовал на убунту 20.04 (WSL) - и действительно работает. А в Oracle об этом знают? ????
Johan_Palych
09.11.2023 14:03Oracle и не блокировал доступ через web. На стационарных пчеле и квадрате без яйца все открывается.
https://container-registry.oracle.com/
Database Repositories
Short URL : https://container-registry.oracle.com/ords/ocr/ba/database
UrsusOne
09.11.2023 14:03Контейнерная база данных в контейнере. Это великолепно!
Но зачем? Просто академический интерес?
Управлять таким каддавром крайне не удобно.
MiIs
09.11.2023 14:03+1Не буду гадать за автора статьи и Johan_Palych зачем им Oracle 23C. Потому что совершенно ясно, что Oracle DB в России в дальнейшем не будет, по крайнй мере в государственном и банковском секторах (да и в других тоже). Причин две: 1. Прекращение поддержки российских пользователей фирмой Otacle после февраля 2022 года. 2. Странная и сильно жадная политика ценообразования Oracle на свои продукты ранее и сильно большой гонор и мвлый выхлоп от так называемой "поддердки". То есть переход с Oracle DB на что-то другой начался задолго до 2022 года. В 2022 году этот переход просто стал бесповоротным.
Последняя промышленная версия Oracle 19C. После этого переход на другие DB. Поэтому необходимость в Oracle 23C действительно либо академическая, либо работа на иностранного заказчика через несколько фирм-прослоек. И, возможно, если кто не в курсе, то еще с марта 2023 года для Virtual Box есть виртуалка с "разработческой" версией Oracle DB 23c - https://www.oracle.com/database/technologies/databaseappdev-vm.html, которую можно скачать абсолютно спокойно, в том числе и из России.
oragraf
Безотносительно содержания статьи - проверять на наличие ошибок было бы неплохо. "иммитация", "не доступность" - то, что бросилось сразу в глаза.