4
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Oracle超初心者がmacで公式OracleDatabase19イメージをdocker-composeしてみた

4
Last updated at Posted at 2019-11-02

この記事の目的

テスト環境を作るために、localにOracleDataBase19を用意しなければならないことになって必死に調べたので、忘備録も兼ねて。不備などありましたらご指摘お願いします。

環境

Mac OS Mojave(10.14.6)
Docker 19.03.4
Oracle docker-images
Oracle Database 19.3

流れ(記事内リンクあり)

Dockerをインストール

Oracle公式のdocker-imagesリポジトリを適当なディレクトリに設置

[Oracle Databaseのzipをダウンロード](#Oracle Databaseのzipをダウンロード)

zipをdocker-imagesリポジトリ内適所に設置

docker-imageをビルド

docker-compose.ymlを作成

コンテナを作成

DB周りの設定

Dockerをインストール

公式からインストール。dockerについて詳しくはこちらの方が詳しく説明してくださっています。

Oracle公式のdocker-imagesリポジトリを適当なディレクトリに設置

Oracle公式のdocker-imagesリポジトリをクローンします。

$ git clone https://github.com/oracle/docker-images.git

このリポジトリに各バージョン(11gとか12cとか)用のdocker imageが入っているので、これを使ってローカルにdocker imageを作成していくことになります。

Oracle Databaseのzipをダウンロード

Oracle Databaseのソフトウェアダウンロードページから、Linux x86-64版をzip形式でダウンロードします。
このとき、Oraleプロファイルへの登録を求められるので、未登録の場合は登録します。
safariで自動解凍されてしまう場合は、safari->環境設定->一般において、「ダウンロード後"安全"なファイルを開く」という項目からチェックを外しておく必要があります。

zipをdocker-imagesリポジトリ内適所に設置

以前は docker-images/OracleDatabase/dockerfiles以下にバージョン名ディレクトリがあり、そこに設置していたようですが、記事作成現在はdocker-images/OracleDatabase/SingleInstance/dockerfiles以下のバージョン名ディレクトリ直下に設置するようになっています。
Downloadsディレクトリにダウンロードした場合は以下のようになります。(現時点での最新バージョンです)

$ cp /Users/[ユーザ名]/Downloads/LINUX.X64_193000_db_home.zip /[docker-imageを設置した場所]/docker-images/OracleDatabase/SingleInstance/dockerfiles/19.3.0

docker-imageをビルド

$ cd [docker-imageを設置した場所]/docker-images/OracleDatabase/SingleInstance/dockerfiles

$ ./buildDockerImage.sh -v 19.3.0 -e -i

ビルドのオプションは-hで確認できます。今回使用したオプションは、-vはバージョン指定、-eはEnterprise Editionであることの指定、-iはMD5チェックサムを無視することの指定です。
ビルドに時間がかかるのでしばらく待ちます。

以下のコマンドで作成されたイメージを確認できます。

$ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
oracle/database     19.3.0-ee           795668b74d8e        33 minutes ago      6.65GB
oraclelinux         7-slim              874477adb545        2 months ago        118MB

oracle/databaseというのがこのイメージの名称ですね。

docker-compose.ymlを作成

dockerコンテナを作成したい場所(アプリケーションのdockerディレクトリなど)にdocker-compose.yml(コンテナの設計書のようなもの)を作成します。

$ vi docker-compose.yml

docker-compose.ymlの書き方はこちらの方などが書いてくださっています。

docker-compose.yml
version: '2'
services:
  db:
    image: oracle/database:19.3.0-ee
    ports:
      - 1521:1521
      - 5500:5500
    volumes:
      - ./data:/opt/oracle/data
    environment:
      - ORACLE_PWD=password
      - ORACLE_PDB=pdb1

volumesに記載したdataディレクトリですが、こちらはデータマウント用に用意しておきます。こうすることで、コンテナを再度作成してもデータが消えません。また、こちらのマウントディレクトリ内から環境変数などを触ることもできる点も便利です。

コンテナを作成

コンテナ立ち上げのコマンドはこちらの方などが書いてくださっています。
一応ですが、docker-composeコマンドが効くのはdocker-compose.ymlの直上のディレクトリです。

$ docker-compose up

私は個人的に、itermの画面分割で、左でupして右でexecするのが気に入っていますが、ひとまず今回は立ち上げるところまでにしておきます。

おわりに

この後、Oracle DataBaseのインスタンスの概念やら、SpringBootのJDBCTemplateを使った接続やらでたくさん躓いたので、近いうちに別記事で書こうと思います。

参考にさせていただいた記事など

https://qiita.com/comefigo/items/d05c0e1977cc25e6b98a
https://itedge.stars.ne.jp/docker_image_oracle_database_19c/
https://qiita.com/gorilla0513/items/f22e8cce4e08da031abe

4
3
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
4
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?