Mac(M1)でOracleDBコンテナ(Oracle Database 19c Enterprise Edition)をビルドする
はじめに
概要
本記事では Mac(M1)で OracleDB コンテナ(Oracle Database 19c Enterprise Edition)をビルドして起動する方法を記載します。
背景
Oracle のデータベースをコンテナで動かす機会があり、試行錯誤したので手順を残しておきます。
動作環境
以下の環境で動作確認をしています。
-
Mac
- OS: Sonoma 14.0
- CPU: M1
- メモリ: 16GB
-
コンテナのランタイム
- podman version 4.6.2
- Docker version 24.0.6
コンテナのランタイムは podman を使用していて、コマンドは docker を使っています。
手順
- リポジトリのクローン
任意のディレクトリにこちらのリポジトリをクローンします。
git clone https://github.com/oracle/docker-images.git
- 対象のディレクトリに移動
今回は SingleInstance の OracleDB イメージをビルドします。
cd docker-images/OracleDatabase/SingleInstance/dockerfiles
-
Oracle Database 19c Enterprise Edition
のバイナリーをダウンロード
Linux ARM64 Support: Oracle Database 19c Enterprise Edition is now supported on ARM64 platforms. You will have to provide the installation binaries of Oracle Database 19c and put them into the dockerfiles/19.3.0 folder. The needed file is named LINUX.ARM64_1919000_db_home.zip.
こちらの READMEに記載されている通り、ARM64 での実行はOracle Database 19c Enterprise Edition
のみがサポートされているので、今回はこちらのバージョンを使用します。
3-1. こちらのサイトからバイナリーをダウンロードします。(Oracle のサイトでのユーザ登録が必要です。)
3-2. ダウンロードしたファイルはLINUX.ARM64_1919000_db_home.zip
という名前でdocker-images/OracleDatabase/SingleInstance/dockerfiles/19.3.0
ディレクトリに配置します。
- コンテナイメージのビルドを行います。
あらかじめ用意されているビルド用のスクリプトを使用してビルドを行います。
pwd
<任意のディレクトリ>/docker-images/OracleDatabase/SingleInstance/dockerfiles
# イメージのビルド
./buildContainerImage.sh -v 19.3.0 -t oracle-db:19.3.0 -e
-t はイメージタグ、-v はバージョン、-e はEnterprise Edition
を表しています。
他のオプションやより詳しい説明は、./buildContainerImage.sh -h
で確認できます。
- ビルドしたイメージの起動
先ほどビルドしたイメージからコンテナを起動します。
docker run --name oracle-19-db \
-p 1521:1521 -p 5500:5500 -p 2484:2484 \
--ulimit nofile=1024:65536 --ulimit nproc=2047:16384 --ulimit stack=10485760:33554432 --ulimit memlock=3221225472 \
-e ORACLE_PWD=password1234 \
oracle-db:19.3.0
コンテナイメージの起動オプションや、各オプションの説明はこちらを参照ください。
使用するバージョンによって起動オプションが若干違っているようなので、ご注意ください。
以下のようなログがコンテナログに出力されていれば OK です。
#########################
DATABASE IS READY TO USE!
#########################
- データベースに接続できることを確認(任意)
以下のようなコマンドでデータベースに接続できることを確認します。
docker exec -it oracle-db sqlplus sys/<your password>@//localhost:1521/<your service name> as sysdba
docker exec -it oracle-db sqlplus system/<your password>@//localhost:1521/<your service name>
docker exec -it oracle-db sqlplus pdbadmin/<your password>@//localhost:1521/<Your PDB name>
まとめ
- 本記事では Mac(M1)で OracleDB コンテナをビルドする手順を記載しました。
参考文献/リンク
-
docker-images リポジトリ
-
今回参考にしたリポジトリ内の README
- こちらの REAMDE に記載の手順を参考にしています。
- https://github.com/oracle/docker-images/tree/main/OracleDatabase/SingleInstance
Discussion