2024年12月21日土曜日

Oracle Spatial Studioのコンテナ・イメージを作成する

Oracle Spatial Studioのコンテナ・イメージを作成してみました。

TL;DR


APEX向けの構成スクリプトのリポジトリに、Oracle Spatial Studioのコンテナを作るためのファイルを追加しました。
git clone https://github.com/ujnak/apex-podman-setup
cd apex-podman-setup/spatial
製品rpmを含むZIPファイルを以下のページよりダウンロードします。Oracle_Spatial_Studio_QSで始まる(QSはQuick Startの略)V*-01.zipという名前のファイルです。いくつかのバージョンがありますが、最新のバージョンを選ぶとよいでしょう。このファイルをディレクトリspatial/files以下に配置します。

JDK17のアーカイブを以下のページよりダウンロードします。DockerfileのJAVA_SHA256にファイルのチェックサムが記載されているため、JDK17.0.16でないとチェックサム・エラーが発生します。こちらはアーキテクチャに合わせてjdk-17.0.16_linux-x64_bin.tar.gzjdk-17.0.16_linux-aarch64_bin.tar.gzのどちらかをディレクトリspatial/files以下に配置します。

https://www.oracle.com/java/technologies/downloads/#java17

以上で準備は完了です。コンテナ・イメージをビルドしてコンテナの作成と実行を行います。
podman build -t spatialstudio .
podman run -d --name spatialstudio -p 8090:8080 -p 4040:4040 spatialstudio

構築手順の紹介



Oracle社が提供しているOracle Linux 8とJava 17のDockerfileを元にしています。


Oracle Spatial Studioを動かすための修正を少々加えています。

イメージの作成には、macOSのpodmanを使いました。

適当なディクレトリを作成し、以下の4つのファイルを配置します。JavaについてはAMD64かARMでファイルが異なります。また、Javaは17限定です。Oracle Spatial StudioのZIPファイルはディレクトリfilesを作成し、その下に配置します。Oracle Spatial Studioは新しいバージョンでも、Dockerfileは変更せずにイメージが作れるはずです。
  • 上記のDockerfile
  • Oracle Spatial Studio Quick StartのZIPファイル(filesの下) - V1050194-01.zip(バージョンが上がるとファイル名が変わります)
  • Oracle JAVAのtar.gzファイル - jdk-17.0.16_linux-aarch64_bin.tar.gz
  • Spatial Studioのコンテナ向け起動スクリプトStart_Spatial_Studio.sh
JDK17のアーカイブについてはDockerfile内にチェックサムが記載されているため、17.0.16とは異なるバージョンのアーカイブを配置した場合は、DockerfileにJAVA_SHA256として記載されているチェックサムを置き換える必要があります。

以下のコマンドを実行して、localhost/spatialstudio:latestのコンテナ・イメージを作成します。

podman build -t spatialstudio .

% podman build -t spatialstudio .

[1/2] STEP 1/8: FROM oraclelinux:8 AS builder

[1/2] STEP 2/8: RUN dnf install -y tar unzip

Oracle Linux 8 BaseOS Latest (aarch64)          9.2 MB/s | 143 MB     00:15    

Oracle Linux 8 Application Stream (aarch64)     7.0 MB/s |  65 MB     00:09    

Last metadata expiration check: 0:00:10 ago on Fri Oct  3 01:23:59 2025.

Package tar-2:1.30-11.el8_10.aarch64 is already installed.

Dependencies resolved.

================================================================================

 Package    Architecture Version                   Repository              Size

================================================================================

Installing:

 unzip      aarch64      6.0-48.0.1.el8_10         ol8_baseos_latest      189 k


Transaction Summary

================================================================================

Install  1 Package


[中略]



++ basename /usr/java/jdk-17/bin/serialver

+ base=serialver

+ '[' '!' -e /usr/bin/serialver ']'

+ alternatives --install /usr/bin/serialver serialver /usr/java/jdk-17/bin/serialver 20000

--> 649f6cbaab94

[2/2] STEP 9/11: EXPOSE 8080 4040

--> 12a5c28d6288

[2/2] STEP 10/11: WORKDIR /opt/oracle/Oracle_Spatial_Studio

--> e8f1805cf6dd

[2/2] STEP 11/11: CMD ["sh", "-c", "/opt/oracle/Oracle_Spatial_Studio/Start_Spatial_Studio.sh"]

[2/2] COMMIT spatialstudio

--> 9bfce20cb6e7

Successfully tagged localhost/spatialstudio:latest

9bfce20cb6e7b241bd1e72c4bca929c409c7ed5e87298b94be18a690527816ef

%


作成されたコンテナ・イメージからコンテナを作成して、Oracle Spatial Studioにアクセスします。私の環境ではポート番号8080が使用されているため8090にマップしています。ただし、Oracle Spatial StudioはHTTPSで動作するため、アクセス先は4040番ポートです

podman run -d --name spatialstudio -p 8090:8080 -p 4040:4040 spatialstudio

% podman run -d --name spatialstudio -p 8090:8080 -p 4040:4040 spatialstudio

42eddba20281a7c9701840934feb1f0d521cbd14faec636dbe4b36891d0d1925

%


ブラウザより以下のURLにアクセスします。自己署名証明書を使っているため、HTTPSの接続時に警告が表示されます。



Oracle Spatial Studioのデフォルトのユーザー設定なので、admin/welcome1で接続できます。リポジトリの接続設定から始めることができます。


今回の記事は以上になります。