kazu22002の技術覚書

PHPer, Golang, AWS エンジニアの日々

docker oracle12c起動(Mac)

dockerでoracle12cを起動するまでのやり方を書いていきます。

環境:Mac

バージョン:Mojave

github.com

docker pull quay.io/maksymbilenko/oracle-12c
docker run -d -p 8080:8080 -p 1521:1521 quay.io/maksymbilenko/oracle-12c
docker run -d -p 8080:8080 -p 1521:1521 -v /my/oracle/data:/u01/app/oracle quay.io/maksymbilenko/oracle-12c

初期起動は時間がかかるため、docker logsで100%になることを確認する必要があります。

(「/my/oracle/data」は自分の環境に合わせて作成してください。)

sqlplus system/oracle@//localhost:1521/xe

sqlplusで確認できます。

できない場合

logsを確認して、failになっている場合の対処です。

  • oracle/dataフォルダを先に作成し、パーミッションを2777で作成
  • NLS_DATE_FORMAT=YYYY-MM-DD HH24:MI:SS を書かない
  • docker-composeで「depends_on」を書かない

基本的には初期起動時に全て発生しました。一度起動して初期化が終了したディレクトリが作成された後は起動終了も問題ありませんでした。

docker-compose

作成したdocker-compose.ymlとDockerfileです。データは同じディレクトリに「oradata」というディレクトリを作成しています。

version: '3'
services:
    oracle:
        build: ./oracle
        volumes:
            - ./oradata:/u01/app/oracle
        ports:
            - "1521:1521"
            - "8081:8080"
        container_name: db_oracle_name
        networks:
          app:
            aliases:
              - oracle.local

networks:
  app:
FROM quay.io/maksymbilenko/oracle-12c
docker-compose up

初回起動は、100%になることを確認するため、「-d」オプションをつけずに起動して、100%になることを確認します。

100%にならない場合はエラー内容から対処を検討します。

残りで考えられるのは容量不足やポート重複等だと思います。

もうoracleで悩まされるのは辛いだけなので、手順の残しておきます。

dockerのDockerファイルを作っている人には感謝です。本当に開発が楽になりました。