背景
とある調査を実施のために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
起動が確認できれば、構築は完了です。