環境
- Windows 10
- Docker Desktop for Windows
準備
- Oracle Database 21c Express Edition for Linux x64 ( OL8 ) をダウンロード
- 適当なディレクトリにダウンロードしたファイルと下記ファイルを配置
ファイル構成
oracle-database-xe-21c-1.0-1.ol8.x86_64.rpm
setup.sh
setup.bat
setup.sh
注: 改行コードをLFにする必要がある。
#!/bin/sh
set -euxo pipefail
# bashを追加
apk add --no-cache bash
# 一時ディレクトリにoracle/docker-imagesをcloneして、あらかじめダウンロードしたファイルと合成
git clone https://github.com/oracle/docker-images.git /tmp/oracle-docker-images
cp -r /tmp/oracle-docker-images/* /docker-images/
rm -rf /tmp/oracle-docker-images
# dockerイメージを作成
/docker-images/OracleDatabase/SingleInstance/dockerfiles/buildContainerImage.sh -v 21.3.0 -x
setup.bat
docker run ^
--name "oracle-image-setup" ^
--rm ^
-v "%~dp0setup.sh:/setup.sh:ro" ^
-v "%~dp0oracle-database-xe-21c-1.0-1.ol8.x86_64.rpm:/docker-images/OracleDatabase/SingleInstance/dockerfiles/21.3.0/oracle-database-xe-21c-1.0-1.ol8.x86_64.rpm:ro" ^
-v "/var/run/docker.sock:/var/run/docker.sock" ^
-it ^
docker:20-git ^
/bin/sh -c "/setup.sh;/bin/sh"
※ バッチファイルにする必要はないが、volumeは絶対パスにする必要があるためバッチファイルの方が楽。
dockerイメージを作成
setup.batを実行する。完了するまで1343秒(約23分)かかった。
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
oracle/database 21.3.0-xe 62896fbfa980 4 minutes ago 6.53GB
dockerイメージを保存
そのまま使う場合は不要。
docker save oracle/database:21.3.0-xe -o ./oracle21xe.tar
docker-compose
services:
oracle21xe:
container_name: oracle21xe
image: oracle/database:21.3.0-xe
restart: unless-stopped
volumes:
- oracle21xe-data:/opt/oracle/oradata
ports:
- 1521:1521
volumes:
oracle21xe-data:
docker-compose up -d oracle21xe
これまた初期化に時間がかかります。12分程度。
パスワード設定
初期パスワードはランダムなので、パスワードを初期化する必要がある。
docker exec oracle21xe /opt/oracle/setPassword.sh PASSWORD
参考資料
おわり
Oracleもう少し小さくなってほしい。