Philipp Salvisbergさんが彼のブログで、Oracle Database 23c Freeのコンテナ・イメージをApple Mシリーズで実行した手順を紹介しています。
Oracle Database 23c on a Mac with an M-Series Chip
Oracle CorporationのPMのGerald Venzlさんも彼のGitHubリポジトリoci-oracle-freeで紹介していますが、どちらもColimaを使用しています。
colima start --arch x86_64 --memory 16 --cpu 8 --disk 100
% colima start --arch x86_64 --memory 16 --cpu 8 --disk 100
INFO[0000] starting colima
INFO[0000] runtime: docker
INFO[0001] creating and starting ... context=vm
INFO[0088] provisioning ... context=docker
INFO[0088] starting ... context=docker
INFO[0095] done
%
% colima list
PROFILE STATUS ARCH CPUS MEMORY DISK RUNTIME ADDRESS
default Running x86_64 8 16GiB 100GiB docker
%
docker pull container-registry.oracle.com/database/free:latest
docker pull container-registry.oracle.com/database/ords:latest
ダウンロードしたイメージを確認します。Oracle REST Data Sericesのコンテナ・イメージはアーキテクチャ別にarm64とamd64版がありますが、amd64の方がダウンロードされていることをIMAGE IDから確認しておきます。
% docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
container-registry.oracle.com/database/ords latest 509be9113a6b 2 months ago 1.93GB
container-registry.oracle.com/database/free latest 39cabc8e6db0 6 months ago 9.16GB
%
docker run -d --name apexdb --ip=172.17.0.2 -p 1521:1521 -e ORACLE_PWD=<SYSのパスワード> container-registry.oracle.com/database/free:latest
% docker run -d --name apexdb --ip=172.17.0.2 -p 1521:1521 -e ORACLE_PWD=******* container-registry.oracle.com/database/free:latest
bd60ad77ec0a76f27a9a7cf80bac63918e8fd5fe715d70dd419b3f7051c4cf02
%
% docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
bd60ad77ec0a container-registry.oracle.com/database/free:latest "/bin/bash -c $ORACL…" 2 minutes ago Up 2 minutes (healthy) 0.0.0.0:1521->1521/tcp, :::1521->1521/tcp apexdb
%
% docker inspect --format='{{.NetworkSettings.IPAddress}}' apexdb
172.17.0.2
%
sql sys/<SYSのパスワード>@localhost:1521/freepdb1 as sysdba
% sql sys/*******@localhost:1521/freepdb1 as sysdba
SQLcl: 木 2月 29 14:41:10 2024のリリース23.4 Production
Copyright (c) 1982, 2024, Oracle. All rights reserved.
接続先:
Oracle Database 23c Free Release 23.0.0.0.0 - Develop, Learn, and Run for Free
Version 23.3.0.23.09
SQL> @apexins SYSAUX SYSAUX TEMP /i/
...set_appun.sql
PL/SQLプロシージャが正常に完了しました。
:CDB
_______
YES
:CDB_ROOT
____________
NO
:META_LINK
_____________
LOCAL
...set_ufrom_and_upgrade.sql
PL/SQLプロシージャが正常に完了しました。
:SCRIPT_NAME
____________________
apexins_nocdb.sql
timing for: Complete Installation
Elapsed: 49.52
SYS> @load_trans JAPANESE
PL/SQLプロシージャが正常に完了しました。
Installing Oracle APEX translation - JAPANESE
. ORACLE
.
. Application Express Hosted Development Service Installation.
..............................................................
PL/SQLプロシージャが正常に完了しました。
...done
Adjust instance settings
PL/SQLプロシージャが正常に完了しました。
SYS> alter user apex_public_user account unlock no authentication;
User APEX_PUBLIC_USERが変更されました。
SYS>
SYS> @apxchpwd
...set_appun.sql
================================================================================
This script can be used to change the password of an Oracle APEX
instance administrator. If the user does not yet exist, a user record will be
created.
================================================================================
Enter the administrator's username [ADMIN]
User "ADMIN" does not yet exist and will be created.
Enter ADMIN's email [ADMIN]
Enter ADMIN's password [] *********
Created instance administrator ADMIN.
SYS> exit
chmod 777 ords_secrets
% mkdir ords_secrets
% chmod 777 ords_secrets
%
ords_secrets以下にファイルconn_string.txtを作成します。
% echo 'CONN_STRING=sys/*******@172.17.0.2:1521/freepdb1' > ords_secrets/conn_string.txt
%
% docker run --name ords -v `pwd`/ords_secrets/:/opt/oracle/variables -p 8181:8181 container-registry.oracle.com/database/ords:latest
INFO : This container will start a service running ORDS 23.4.0 and APEX 23.2.0.
INFO : CONN_STRING has been found in the container variables file.
INFO : Database connection established.
INFO : APEX 23.2.0 is already installed in your database.
INFO : Preparing ORDS.
2024-03-16T05:49:37Z INFO ORDS has not detected the option '--config' and this will be set up to the default directory.
ORDS: Release 23.4 Production on Sat Mar 16 05:49:47 2024
Copyright (c) 2010, 2024, Oracle.
Configuration:
/etc/ords/config/
Created folder /tmp/ords_logs/install_logs_DB
Oracle REST Data Services - Non-Interactive Install
Retrieving information.
The setting named: db.connectionType was set to: basic in configuration: default
The setting named: db.hostname was set to: 172.17.0.2 in configuration: default
The setting named: db.port was set to: 1521 in configuration: default
The setting named: db.servicename was set to: freepdb1 in configuration: default
The setting named: plsql.gateway.mode was set to: proxied in configuration: default
The setting named: db.username was set to: ORDS_PUBLIC_USER in configuration: default
The setting named: db.password was set to: ****** in configuration: default
The setting named: feature.sdw was set to: true in configuration: default
The global setting named: database.api.enabled was set to: true
The setting named: restEnabledSql.active was set to: true in configuration: default
The setting named: security.requestValidationFunction was set to: ords_util.authorize_plsql_gateway in configuration: default
2024-03-16T05:50:05.617Z INFO Installing Oracle REST Data Services version 23.4.0.r3461619 in FREEPDB1
2024-03-16T05:50:16.923Z INFO ... Verified database prerequisites
2024-03-16T05:50:20.145Z INFO ... Created Oracle REST Data Services proxy user
2024-03-16T05:50:25.611Z INFO ... Created Oracle REST Data Services schema
2024-03-16T05:50:33.194Z INFO ... Granted privileges to Oracle REST Data Services
2024-03-16T05:50:57.648Z INFO ... Created Oracle REST Data Services database objects
2024-03-16T05:52:52.185Z INFO Completed installation for Oracle REST Data Services version 23.4.0.r3461619. Elapsed time: 00:02:46.340
2024-03-16T05:52:54.154Z INFO Completed configuring PL/SQL gateway user for Oracle REST Data Services version 23.4.0.r3461619. Elapsed time: 00:00:01.787
2024-03-16T05:52:54.157Z INFO Log file written to /tmp/ords_logs/install_logs_DB/ords_install_2024-03-16_055005_11177.log
2024-03-16T05:52:54.219Z INFO To run in standalone mode, use the ords serve command:
2024-03-16T05:52:54.227Z INFO ords --config /etc/ords/config serve
2024-03-16T05:52:54.229Z INFO Visit the ORDS Documentation to access tutorials, developer guides and more to help you get started with the new ORDS Command Line Interface (http://oracle.com/rest).
INFO : Configuring db.invalidPoolTimeout 5s
ORDS: Release 23.4 Production on Sat Mar 16 05:53:06 2024
Copyright (c) 2010, 2024, Oracle.
Configuration:
/etc/ords/config/
The global setting named: db.invalidPoolTimeout was set to: 5s
INFO : Configuring debug.printDebugToScreen true
ORDS: Release 23.4 Production on Sat Mar 16 05:53:19 2024
Copyright (c) 2010, 2024, Oracle.
Configuration:
/etc/ords/config/
The global setting named: debug.printDebugToScreen was set to: true
INFO : Configuring jdbc.MaxLimit 30
ORDS: Release 23.4 Production on Sat Mar 16 05:53:31 2024
Copyright (c) 2010, 2024, Oracle.
Configuration:
/etc/ords/config/
The setting named: jdbc.MaxLimit was set to: 30 in configuration: default
INFO : Configuring jdbc.InitialLimit 10
ORDS: Release 23.4 Production on Sat Mar 16 05:53:46 2024
Copyright (c) 2010, 2024, Oracle.
Configuration:
/etc/ords/config/
The setting named: jdbc.InitialLimit was set to: 10 in configuration: default
INFO : Starting the ORDS services with the following database details:
INFO : 172.17.0.2:1521/freepdb1.
ORDS: Release 23.4 Production on Sat Mar 16 05:54:01 2024
Copyright (c) 2010, 2024, Oracle.
Configuration:
/etc/ords/config/
2024-03-16T05:54:02.783Z INFO HTTP and HTTP/2 cleartext listening on host: 0.0.0.0 port: 8181
2024-03-16T05:54:03.187Z INFO The document root is serving static resources located in: /etc/ords/config/global/doc_root
2024-03-16T05:54:31.958Z INFO Configuration properties for: |default|lo|
db.servicename=freepdb1
awt.toolkit=sun.awt.X11.XToolkit
db.invalidPoolTimeout=5s
java.specification.version=11
conf.use.wallet=true
sun.cpu.isalist=
sun.jnu.encoding=ANSI_X3.4-1968
java.class.path=/opt/oracle/ords/ords.war
java.vm.vendor=Oracle Corporation
sun.arch.data.model=64
nashorn.args=--no-deprecation-warning
java.vendor.url=https://openjdk.java.net/
resource.templates.enabled=false
user.timezone=UTC
db.port=1521
debug.printDebugToScreen=true
java.vm.specification.version=11
os.name=Linux
sun.java.launcher=SUN_STANDARD
user.country=US
sun.boot.library.path=/usr/java/jdk-11.0.15/lib
sun.java.command=/opt/oracle/ords/ords.war --config /etc/ords/config serve --port 8181 --apex-images /opt/oracle/apex/23.2.0/images
jdk.debug=release
sun.cpu.endian=little
user.home=/home/oracle
oracle.dbtools.launcher.executable.jar.path=/opt/oracle/ords/ords.war
user.language=en
java.specification.vendor=Oracle Corporation
java.version.date=2022-04-19
database.api.enabled=true
java.home=/usr/java/jdk-11.0.15
db.username=ORDS_PUBLIC_USER
file.separator=/
java.vm.compressedOopsMode=Zero based
line.separator=
restEnabledSql.active=true
java.specification.name=Java Platform API Specification
java.vm.specification.vendor=Oracle Corporation
java.awt.graphicsenv=sun.awt.X11GraphicsEnvironment
feature.sdw=true
java.awt.headless=true
db.hostname=172.17.0.2
db.password=******
sun.management.compiler=HotSpot 64-Bit Tiered Compilers
security.requestValidationFunction=ords_util.authorize_plsql_gateway
java.runtime.version=11.0.15+8-LTS-149
user.name=oracle
path.separator=:
os.version=6.5.0-25-generic
java.runtime.name=Java(TM) SE Runtime Environment
file.encoding=ANSI_X3.4-1968
plsql.gateway.mode=proxied
java.vm.name=Java HotSpot(TM) 64-Bit Server VM
java.vendor.version=18.9
java.vendor.url.bug=https://bugreport.java.com/bugreport/
java.io.tmpdir=/tmp
oracle.dbtools.cmdline.ShellCommand=ords
java.version=11.0.15
user.dir=/etc/ords/config
os.arch=amd64
java.vm.specification.name=Java Virtual Machine Specification
jdbc.MaxLimit=30
java.awt.printerjob=sun.print.PSPrinterJob
oracle.dbtools.cmdline.home=/opt/oracle/ords
sun.os.patch.level=unknown
java.library.path=/usr/java/packages/lib:/usr/lib64:/lib64:/lib:/usr/lib
java.vendor=Oracle Corporation
java.vm.info=mixed mode
java.vm.version=11.0.15+8-LTS-149
sun.io.unicode.encoding=UnicodeLittle
jdbc.InitialLimit=10
db.connectionType=basic
java.class.version=55.0
2024-03-16T05:55:03.759Z INFO
Mapped local pools from /etc/ords/config/databases:
/ords/ => default => VALID
2024-03-16T05:55:04.428Z INFO Oracle REST Data Services initialized
Oracle REST Data Services version : 23.4.0.r3461619
Oracle REST Data Services server info: jetty/10.0.18
Oracle REST Data Services java info: Java HotSpot(TM) 64-Bit Server VM 11.0.15+8-LTS-149
% docker stop ords
ords
%
もう一度コンテナordsを起動します。
docker starrt ords
コンテナとしてapexdbおよびordsが作成されたので、以降は以下の手順で環境の停止と起動ができます。