用 Docker 搭建 ORACLE 數據庫開發環境
需要安裝 ORACLE 數據庫做開發,直接安裝的話因為各類平台的限制,非常復雜,會遇到很多問題。
還好,現在有 Docker 化的部署方式,省去很多麻煩。
以下核心內容來自 ORACLE 的項目:https://github.com/oracle/docker-images
Step 1:下載安裝包
把 XE 版本的 ORACLE 安裝包下來:下載鏈接
Step 2:build docker image
GitHub 上把 oracle 的 docker 項目 clone 下來:https://github.com/oracle/docker-images
Step 1 下載的安裝包,放在項目的 OracleDatabase/SingleInstance/dockerfiles/11.2.0.2 目錄下,在目錄下運行:
docker build -t oracle/database:11.2.0.2-xe -f Dockerfile.xe .
Step 3:運行
docker run --name myoraclexe \ --shm-size=1g \ -p 1521:1521 -p 8080:8080 \ -e ORACLE_PWD=xxxxxx \ -v /xxx/xxx/xxx/app/oracle/oradata \ oracle/database:11.2.0.2-xe docker stop myoraclexe docker start myoraclexe
Step 4:連接測試
sqlplus system/xxxxxx@//localhost:1521/XE CREATE USER demo IDENTIFIED BY demo; GRANT CONNECT, RESOURCE, DBA TO demo;
完,就這么簡單!
執行過程中報錯
[root@localhost 11.2.0.2]# docker build -t oracle/database:11.2.0.2-xe -f Dockerfile.xe . Sending build context to Docker daemon 2.574GB Step 1/10 : FROM oraclelinux:7-slim ---> 874477adb545 Step 2/10 : MAINTAINER Gerald Venzl <gerald.venzl@oracle.com> ---> Using cache ---> 90d13a9a6663 Step 3/10 : ENV ORACLE_BASE=/u01/app/oracle ORACLE_HOME=/u01/app/oracle/product/11.2.0/xe ORACLE_SID=XE INSTALL_FILE_1="oracle-xe-11.2.0-1.0.x86_64.rpm.zip" INSTALL_DIR="$HOME/install" CONFIG_RSP="xe.rsp" RUN_FILE="runOracle.sh" PWD_FILE="setPassword.sh" CHECK_DB_FILE="checkDBStatus.sh" ---> Using cache ---> 5bc65d1d34a0 Step 4/10 : ENV PATH=$ORACLE_HOME/bin:$PATH ---> Using cache ---> 62099ecec7ee Step 5/10 : COPY $INSTALL_FILE_1 $CONFIG_RSP $RUN_FILE $PWD_FILE $CHECK_DB_FILE $INSTALL_DIR/ COPY failed: stat /var/lib/docker/tmp/docker-builder133837941/oracle-xe-11.2.0-1.0.x86_64.rpm.zip: no such file or directory
大約是因為dockerfile中定義的 oracle-xe-11.2.0-1.0.x86_64.rpm.zip 找不到,我下載下來的是 oracle-database-xe-18c-1.0-1.x86_64.rpm
修改Dockerfile.xe
重新執行上邊的命令
報錯2:
Total download size: 27 M Downloading packages: Delta RPMs disabled because /usr/bin/applydeltarpm not installed.
執行:
yum -y install deltarpm
重新執行docker命令