「[[.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]