LoginSignup
1
0

More than 1 year has passed since last update.

Oracle Database 21c Express Edition の docker イメージを作る

Last updated at Posted at 2022-04-13

環境

  • Windows 10
  • Docker Desktop for Windows

準備

  1. Oracle Database 21c Express Edition for Linux x64 ( OL8 ) をダウンロード
  2. 適当なディレクトリにダウンロードしたファイルと下記ファイルを配置

ファイル構成

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もう少し小さくなってほしい。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0