「[[.NET 開発基盤部会 Wiki>http://dotnetdevelopmentinfrastructure.osscons.jp]]」は、「[[Open棟梁Project>https://github.com/OpenTouryoProject/]]」,「[[OSSコンソーシアム .NET開発基盤部会>https://www.osscons.jp/dotNetDevelopmentInfrastructure/]]」によって運営されています。

-[[戻る>各種RDBMSをDockerコンポーズ化する。]]

*目次 [#p2fa7918]
#contents

*概要 [#ced8952d]
-気軽にDocker Hubから使えない。
--自分でdocker buildするか、
--OracleCRから取得する。
---ログインが必要
---ただし、古く、使い勝手も悪いらしい。

-Windowsの場合、以下を利用して、自分でdocker build可能。
--Git Bash
--Docker for Windows

-[[ココ>#m6e4cea4]]まで評価してみたが、~
現時点では[[Windows環境>VM起動後の開発環境のセットアップ(Windows)]]では使え無さそう。
--Vmmemが非常に重くなる。
--ORACLE_PWDなどの環境変数が効かない。
--XEPDB1が作成されていない。

*詳細 [#e0e5a0e4]

**Dockerfile [#r32e9ad3]

***Oracle [#gcfed141]
ベースイメージを作成~
(*.sh内でDockerfileによるdocker buildを行う)

-クローン~
https://github.com/oracle/docker-images.git

-ダウンロード
--https://www.oracle.com/jp/database/technologies/xe-downloads.html
--Oracle Database 18c Express Edition(XE)
---for Linux x64
---Release 18.4.0.0.0(18c)

-カレント~
https://github.com/oracle/docker-images/tree/master/OracleDatabase/SingleInstance/dockerfiles

--準備~
DL した 18c XE の *.rpm ファイル を 18.4.0 フォルダに配置

--Git Bushを起動
---Git BushでカレントへCDする。
---以下のコマンドを実行してビルド~
(結構時間が掛かるので気長に待つ)
 $ ./buildDockerImage.sh -v 18.4.0 -x
 
 ...
 
 Oracle Database Docker Image for 'xe' version 18.4.0 is ready to be extended:
 
   --> oracle/database:18.4.0-xe
 
 Build completed in 708 seconds.

--CMDを起動

---docker imagesを実行する。
 >docker images
 REPOSITORY                                TAG                                              IMAGE ID       CREATED         SIZE
 oracle/database                           18.4.0-xe                                        b6787bab145e   6 minutes ago   5.89GB

---ベースのイメージが生成されていることを確認する。

***自作 [#c8bc899b]
ベースイメージ上でインストールを行う。~
(自作Dockerfileを[[docker-compose.yml>#i8b188ca]]経由でdocker build)

 FROM oracle/database:18.4.0-xe
 
 RUN yum -y install vi
 RUN echo 'TZ="Asia/Tokyo"' > /etc/sysconfig/clock
 RUN cp /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
 RUN echo 'LANG="ja_JP.UTF-8"' > /etc/sysconfig/i18n
 RUN echo 'LC_CTYPE="ja_JP.utf8"' >> /etc/sysconfig/i18n
 RUN yum reinstall -y glibc-common
 RUN yum reinstall -y glibc
 RUN localedef -f UTF-8 -i ja_JP ja_JP.UTF-8
 
 EXPOSE 1521

※ 「#」のコメントがエラーになったタメ外した。

**docker-compose.yml [#i8b188ca]

***作成 [#g43da041]
 version: "2.0"
 
 services:
 
   oracle:
 
     build:
       context: .
       dockerfile: Dockerfile
 
     container_name: oracle_xe_db
 
     shm_size: 1g # 共有メモリを1GB以上にしないとコンテナ起動時にエラーが発生します。
 
     environment:
     - TZ=Asia/Tokyo
     - LANGUAGE=ja_JP.ja
     - LANG=ja_JP.UTF-8
     - NLS_LANG=Japanese_Japan.AL32UTF8 # sqlplusの日本語化でこの環境変数が必要になります。
     - ORACLE_PWD=system # パスワードは適宜指定します。
 
     ports:
     - 1521:1521
 
     volumes:
     - ./init:/docker-entrypoint-initdb.d/startup

***起動 [#a1ee243f]
debug時は「-d」を外す。
 >docker-compose up -d

**クライアント [#fa34b6f9]

***コンテナ内のSQLPlus  [#m6e4cea4]
-環境変数(ORACLE_PWD)の値で認証できないので、~
OS認証を使用して、接続まではできた。
 >docker exec -it oracle_xe_db /bin/bash
 
 bash-4.2#
 bash-4.2# su oracle
 [oracle@6315f4fefe02 /]$ sqlplus / as sysdba
 
 SQL*Plus: Release 18.0.0.0.0 - Production on 水 12月 16 13:32:19 2020
 Version 18.4.0.0.0
 
 Copyright (c) 1982, 2018, Oracle.  All rights reserved.
 
 Oracle Database 18c Express Edition Release 18.0.0.0.0 - Production
 Version 18.4.0.0.0
 に接続されました。
 SQL>

-XEPDB1も存在しない。
 SQL> alter session set container = XEPDB1;
 ERROR:
 ORA-65011: プラガブル・データベースXEPDB1が存在しません。

-Vmmemが非常に重くなり、上手く利用できなかった。

***[[SQL Developer>#ye7d2afc]] [#q17062f8]

*参考 [#f191f3a6]
https://github.com/oracle/docker-images/blob/master/OracleDatabase/SingleInstance/README.md

**Oracle [#y3c0c048]
-Oracle Database Express Edition(XE)のダウンロード | Oracle 日本~
https://www.oracle.com/jp/database/technologies/xe-downloads.html

-Oracle Database (CDB) on Docker を動かしてみる~
https://www.slideshare.net/oracle4engineer/oracle-database-cdb-on-docker

**Qiita [#aba76d02]
-Docker版Oracle Database 12cを使ってみる~
https://qiita.com/comefigo/items/d05c0e1977cc25e6b98a

-Oracle Express Editionの環境をDockerで~
構築しSQL*Plusで日本語を利用する。~
https://qiita.com/wakaken/items/fd870719fda966ab1a79

-dockerでOracle Database18cの開発環境構築してみた~
https://qiita.com/forests-k/items/adc062c415d115b1c73d

**マイクロソフト系技術情報 Wiki [#c68796db]
***[[Oracle11gXE + ODP.NET Managed Driver>https://techinfoofmicrosofttech.osscons.jp/index.php?Oracle11gXE%20%2B%20ODP.NET%20Managed%20Driver]] [#ye7d2afc]

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS