В пос­леднее вре­мя исполь­зование прог­рамм Oracle в Рос­сии зна­читель­но усложни­лось — в час­тнос­ти, они недос­тупны для ска­чива­ния нап­рямую с сай­та раз­работ­чика. Но все эти прог­раммы сущес­тву­ют в виде обра­зов кон­тей­неров на обще­дос­тупных ресур­сах, в том чис­ле на hub.docker.com. В этой статье я покажу, как их отту­да уста­нав­ливать.

Для при­мера мы запус­тим прог­рамму Analytic Workspace Manager (AWM), которая пред­назна­чена для соз­дания и выпол­нения опе­раций над хра­нили­щами в виде мно­гомер­ных кубов. При этом допол­нитель­но понадо­бит­ся уста­новить СУБД Oracle с кли­ентом SQL Developer.

В качес­тве движ­ка кон­тей­неров я решил исполь­зовать Podman, пред­полагая, что на нем лег­че будет орга­низо­вать работу нес­коль­ких групп поль­зовате­лей на одном компь­юте­ре бла­года­ря механиз­му подов. Пос­ле прак­тичес­кого тес­тирова­ния мно­гочис­ленных обра­зов с hub.docker.com я раз­работал струк­туру про­екта, которой и хочу с тобой поделить­ся. На хос­те у нас будет работать Alt Linux.

Структура проекта
Струк­тура про­екта
 

Что внутри у проекта

Про­ект может сос­тоять из нес­коль­ких подов с номера­ми от 1 до 9. Обще­ние с внеш­ним миром про­исхо­дит через порт с номером 5152N, где N — номер пода. Каж­дый под сос­тоит из четырех кон­тей­неров. Кон­тей­нер infra соз­дает­ся авто­мати­чес­ки при соз­дании пода. Он вклю­чает том, находя­щий­ся в пап­ке /colap/globaldb (для демонс­тра­цион­ной базы дан­ных global), и том в пап­ке /colap/awm/awm (для прог­раммы AWM). Пап­ка /colap/globaldb так­же исполь­зует­ся для дос­тупа из кон­тей­неров к допол­нитель­ным матери­алам.

Кон­тей­нер oracledb1 содер­жит собс­твен­но саму СУБД Oracle. К име­ни кон­тей­нера добав­ляет­ся номер пода, что­бы исклю­чить кон­фликт при соз­дании такого же кон­тей­нера в дру­гом поде. Исходный образ — gvenzl/oracle-xe:full, на его осно­ве соз­дает­ся собс­твен­ный образ oracledb1.

На рисун­ке крас­ным шриф­том обоз­начены исходные обра­зы, ска­чива­емые с hub.docker.com. Том, который лежит в пап­ке /colap/podN/oradata, где N — номер пода, пред­назна­чен для хра­нения баз дан­ных поль­зовате­лей.

В кон­тей­нере sqldev1 находит­ся кли­ент SQL Developer. Он соз­дает­ся непос­редс­твен­но из обра­за marcelhuberfoo/sqldeveloper:latest.

Кон­тей­нер awm1 пред­назна­чен для уста­нов­ки прог­раммы awm12.jar. В резуль­тате дли­тель­ных поис­ков я нашел образ harisekhon/centos-java:8, содер­жащий нуж­ную вер­сию Java и набор биб­лиотек, поз­воля­ющих запус­кать без оши­бок прог­рамму awm12.jar. Образ oracle-awm:121 соз­дает­ся из исходно­го вклю­чени­ем в него прог­раммы awm12.jar.

 

Создаем проект

Ка­тало­ги и фай­лы про­екта раз­меща­ются в кор­невом катало­ге.

Структура каталогов проекта
Струк­тура катало­гов про­екта

Пап­ки, отме­чен­ные крас­ным цве­том, соз­дают­ся авто­мати­чес­ки с помощью скрип­та, о чем рас­ска­жу чуть поз­же. Соз­дать осталь­ные пап­ки и напол­нить их ука­зан­ным содер­жимым нуж­но вруч­ную.

Там же находят­ся исходные архи­вы awm121020A_Standalone.zip и global-11g-schema-1-128202.zip с прог­раммой AWM и дам­пом демонс­тра­цион­ной базы дан­ных global.

 

Ставим Podman и загружаем образы

В Alt Linux для инстал­ляции Podman нуж­но с пра­вами root выпол­нить сле­дующую коман­ду:

apt-get install podman

Для заг­рузки исходных обра­зов выпол­ни такие коман­ды:

podman pull gvenzl/oracle-xe:full
podman pull marcelhuberfoo/sqldeveloper:latest
podman pull harisekhon/centos-java:8

Продолжение доступно только участникам

Материалы из последних выпусков становятся доступны по отдельности только через два месяца после публикации. Чтобы продолжить чтение, необходимо стать участником сообщества «Xakep.ru».

Присоединяйся к сообществу «Xakep.ru»!

Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее

  • Подпишись на наc в Telegram!

    Только важные новости и лучшие статьи

    Подписаться

  • Подписаться
    Уведомить о
    0 комментариев
    Межтекстовые Отзывы
    Посмотреть все комментарии