Dockerfile制作Oracle19c镜像

news/2024/10/31 14:23:55/

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.ppmy.cn/news/1543354.html

相关文章

C/C++内存和内存管理

一.C/C内存分布 首先来检测一下对于内存的分布知识是否理解通透了&#xff0c;请看下面代码和回答相关问题。 int globalVar 1; static int staticGlobalVar 1; void Test() {static int staticVar 1;int localVar 1;int num1[10] { 1, 2, 3, 4 };char char2[] "a…

【Linux】Kafka部署

1、部署 # 解压 [appuserlocalhost app]$ tar -zxvf kafka_2.13-3.0.0.tgz# 修改配置文件&#xff08;具体配置见下文&#xff09; [appuserlocalhost app]$ cd kafka_2.13-3.0.0 [appuserlocalhost kafka_2.13-3.0.0]$ vim config/server.properties # 在所有集群节点启动Kaf…

使用 Cursor 和 Devbox 快速开发并上线 Gin 项目

作为开发者&#xff0c;最让我们头疼的事情是什么&#xff1f;那必须是环境配置、版本控制以及各种部署配置等等繁琐的工作。 想象一下&#xff0c;如果你只需点击几下鼠标&#xff0c;就能拥有一个完全配置好的开发环境&#xff0c;支持从 Java 到 Python&#xff0c;从 Reac…

【Mac】Homebrew

1、Homebrew 简介 官网地址&#xff1a;https://brew.sh Homebrew 是一款Mac OS平台下的软件包管理工具&#xff0c;拥有安装、卸载、更新、查看、搜索等很多实用的功能。 Homebrew 主要有四个部分组成: brew、homebrew-core 、homebrew-bottles、homebrew-cask。 源说明br…

阿里面试:为什么MySQL不建议使用Delete删除数据?

MySQL有建议过不要使用他们家的DELETE吗&#xff1f;在MySQL 8.0的官方文档里没有找到不建议使用DELETE的文字。 DELETE VS NOT DELETE&#xff0c;这是由来已久的问题 时间回到2009的8月30号。大佬Ayende Rahien——也被称为Oren Eini&#xff0c;Hibernating Rhinos公司的C…

css实现边框双色凹凸半圆

整体效果如下图&#xff1a; 结构代码&#xff1a; <div classline-outside-wrap><div classwrap><img src../img/avatar2x.png/><div classcontent-wrap></div></div></div> 内凹框实现&#xff1a; .content-wrap{width:100%;he…

基于backtrader实现人工智能LOF的择时,optstrategy实现最优参数搜索(年化从9%提升至15.4%)

原创内容第695篇&#xff0c;专注量化投资、个人成长与财富自由。 今日策略 今天的策略是基于backtrader实现人工智能LOF的择时&#xff0c;通过backtrader的参数优化功能&#xff0c;找到最优参数。 策略主体&#xff1a; 策略有三个参数&#xff0c;一是动量周期&#xff…

赋能医疗保健:TinyML用于精确的肺部疾病分类

论文标题&#xff1a;Empowering Healthcare: TinyML for Precise Lung Disease Classification 中文标题&#xff1a;赋能医疗保健&#xff1a;TinyML用于精确的肺部疾病分类 作者信息&#xff1a; Youssef Abadade&#xff0c;系统工程实验室&#xff0c;国家应用科学学院…