背景
とある調査を実施のためにlocalにOracle Databaseを構築してみました、という話です。
今回は、その備忘録です。
開発環境
- Windows10
- Docker Desktop for Windows
- Oracle Database 18c (18.3.0) Express Edition (XE)
手順
-
oracle databeseの公式repositoryを取得
docker imageをbuildするためのscriptは、Oracleがgithub上で公開をしています。今回は、そのscriptを利用してdocker imageの作成を行います(手順は後述)。
cd ${projecty root}/build/docker/oracle/ git clone https://github.com/oracle/docker-images.git -
oracle database本体の取得
oracle database 18c(18.3.0)にて公開されているバイナリを取得します。
-
downloadファイルを配置
cd ${projecty root}/build/docker/oracle/docker-images/OracleDatabase/SingleInstance/dockerfiles/18.3.0 cp ~/Download/linu.x64_180000_db_home.zip . -
docker imageのbuild
git cloneで取得したshell scriptにて、docker imageを作成します。
cd ${projecty root}/build/docker/oracle/docker-images/OracleDatabase/SingleInstance/dockerfiles sh biuldDockerImage.sh -v 18.3.0 -e以下のメッセージが出力されることを確認できれば、docker imageの作成を行います。
Oracle Database Docker Image for 'ee' version 18.4.0 is ready to be extended: --> oracle/database:18.4.0-ee Build completed in 928 seconds.ここで、以下のエラーが発生した場合は、docker imageを作成する際に実行するshell scriptの改行コードが
LFからCRLFに変更されている可能性があります。対象のshell scriptの改行コードをLFにします。MD5 for required packages to build this image did not match! Make sure to download missing files in folder 18.3.0. -
imageの出力確認
作成されたdocker imageを確認します。
docker images REPOSITORY TAG IMAGE ID CREATED SIZE oracle/database 18 3.0-ee c90d8241c96d 3 hours ago 5.98GB ...省略... -
docker-compose.ymlに構成の記述
version: '2' services: db: image: oracle/database:18.3.0-ee environment: ORACLE_SID: ORCL ORACLE_PDB: SAMPLE ORACLE_PWD: password ORACLE_CHARACTERSET: AL32UTF8 ORA_SDTZ: Japan ports: - "1521:1521" - "5500:5500" volumes: - ./build/docker/oracle/oradata:/opt/oracle/oradata -
docker containerの起動
docker-composeコマンドでcontainerの起動をします。
なお、この処理には時間がかかります。(30分程度)docker-compose up -d起動が確認できれば、構築は完了です。
