当前位置: 首页 > news >正文

Dockerfile制作Oracle19c镜像

Dockerfile文件

cat > Dockerfile << 'EOF'
# 使用 Oracle Linux 8 作为基础镜像
FROM oraclelinux:8# 复制 Oracle 19c 安装包
COPY oracle-database-ee-19c-1.0-1.x86_64.rpm /tmp/# 安装 Oracle 19c 数据库和依赖
RUN yum localinstall -y /tmp/oracle-database-ee-19c-1.0-1.x86_64.rpm && \yum -y clean all && \rm -f /tmp/oracle-database-ee-19c-1.0-1.x86_64.rpm# 初始化数据库脚本
COPY Instance_initialization.sh /opt/oracle/scripts/Instance_initialization.sh
RUN chmod +x /opt/oracle/scripts/Instance_initialization.sh# 切换Oracle
USER oracle# 设置环境变量
ENV ORACLE_BASE=/opt/oracle \ORACLE_HOME=/opt/oracle/product/19c/dbhome_1 \ORACLE_VERSION=19.3.0 \PATH=/opt/oracle/product/19c/dbhome_1/bin:$PATH# 创建目录用于挂载持久化表空间和 dump 文件
RUN mkdir -p $ORACLE_BASE/oradata && \mkdir -p $ORACLE_BASE/admin/dump# 暴露端口
EXPOSE 1521 5500# 配置数据库启动时的命令
CMD ["/usr/bin/sh /opt/oracle/scripts/Instance_initialization.sh"]
EOF

初始化脚本

vim Instance_initialization.sh
#!/bin/bash
# 设置数据库环境变量
export ORACLE_BASE=/opt/oracle
export ORACLE_HOME=/opt/oracle/product/19c/dbhome_1
export PATH=$ORACLE_HOME/bin:$PATHexport ORACLE_SID=${ORACLE_SID:-orcl}
export ORACLE_PWD=${ORACLE_PWD:-oracle}
export DB_USER=${DB_USER:-oracleuser}
export DB_PWD=${DB_PWD:-oraclepwd}# 创建监听
netca -silent -responsefile $ORACLE_HOME/assistants/netca/netca.rsp# 创建实例配置文件--dbca.rsp
cat > $ORACLE_BASE/scripts/dbca.rsp << EOF
responseFileVersion=$ORACLE_HOME/assistants/rspfmt_dbca_response_schema_v19.0.0
gdbName=$ORACLE_SID
sid=$ORACLE_SIDdatabaseConfigType=SItemplateName=General_Purpose.dbc
sysPassword=$ORACLE_PWD
systemPassword=$ORACLE_PWDdatafileDestination=$ORACLE_HOME/oradata
recoveryAreaDestination=$ORACLE_HOME/flash_recovery_areacharacterSet=ZHS16GBK
nationalCharacterSet=AL16UTF16
totalMemory=4096listeners=LISTENER
sampleSchema=true
databaseType=OLTP
emConfiguration=NONE
EOF# 创建实例
dbca -silent -createDatabase -templateName General_Purpose.dbc -responseFile $ORACLE_BASE/scripts/dbca.rsp# 查看监听
lsnrctl status# 创建普通用户并授权远程登录
sqlplus / as sysdba <<EOF
CREATE USER $DB_USER IDENTIFIED BY $DB_PWD;
GRANT CREATE SESSION TO $DB_USER;
EXIT;
EOF# 保持容器运行
tail -f /dev/null

totalMemory: 修改为实际内存值

制作镜像

docker build -t oracle-19c .

docker-compose文件

version: '3'
services:oracle-db:image: oracle-19c:latestcontainer_name: oracle19cuser: oracleenvironment:- ORACLE_SID=orcl- ORACLE_PWD=oracle#2012- DB_USER=orcl- DB_PWD=orcl#2012ports:- "1521:1521"- "5500:5500"volumes:- ./oradata:/opt/oracle/oradata  # 数据持久化- ./dump:/opt/oracle/admin/dump  # DUMP 文件持久化networks:- oracle-networkrestart: unless-stoppednetworks:oracle-network:driver: bridge
http://www.lryc.cn/news/474599.html

相关文章:

  • 【时间之外】IT人求职和创业应知【23】
  • 后端:Spring-1
  • OTX系统架构分析
  • ASO如何低预算进行优化
  • 非线性数据结构之数
  • 个人开发三步走
  • qt QAction详解
  • 建立maven项目常见问题解决办法
  • Windows 10 安装使用Docker踩过的坑和解决-31/10/2024
  • 微服务之间的调用关系
  • Chinese Spelling Correction as Rephrasing Language Model(AAAI2024)
  • DirectShow过滤器开发-写MP3音频文件过滤器(再写 写MP3)
  • 文章解读与仿真程序复现思路——电力自动化设备EI\CSCD\北大核心《基于对等架构的虚拟电厂-配电网双层电碳协同调度模型》
  • 大数据-204 数据挖掘 机器学习理论 - 混淆矩阵 sklearn 决策树算法评价
  • Fsm1
  • C. Gorilla and Permutation
  • 从0开始学python-day17-数据结构2
  • (蓝桥杯C/C++)—— 编程基础
  • 企业物流管理数据仓库建设的全面指南
  • 数据采集-Kepware 安装证书异常处理
  • ubuntu禁止自动更新设置
  • Rust 力扣 - 1461. 检查一个字符串是否包含所有长度为 K 的二进制子串
  • C#/.NET/.NET Core技术前沿周刊 | 第 11 期(2024年10.21-10.31)
  • unity 三维数学 ,角度 弧度计算
  • Java基础4-控制流程
  • 面试题分享11月1日
  • 【含文档】基于ssm+jsp的学科竞赛系统(含源码+数据库+lw)
  • Docker方式部署ClickHouse
  • 车载通信架构 --- PNC、UB与信号的关系
  • 智慧农业云平台:大数据赋能现代农业的未来