Docker 安装 Oracle Database 23c
# 使用23c Oracle Linux作为基础镜像
FROM oraclelinux:23-slim
# 设置环境变量
ENV ORACLE_SID=orcl \
ORACLE_HOME=/opt/oracle/product/23c/dbhome_1 \
ORACLE_BASE=/opt/oracle \
PATH=$PATH:$ORACLE_HOME/bin \
LANG=C.UTF-8 \
LD_LIBRARY_PATH=$ORACLE_HOME/lib
# 安装Oracle数据库软件所需的依赖
RUN yum install -y \
bc \
binutils \
compat-libcap1 \
compat-libstdc++-33 \
compat-libstdc++-33.i686 \
glibc \
glibc.i686 \
glibc-devel \
glibc-devel.i686 \
ksh \
libaio \
libaio.i686 \
libaio-devel \
libaio-devel.i686 \
libgcc \
libgcc.i686 \
libnsl \
libnsl.i686 \
libstdc++ \
libstdc++.i686 \
libstdc++-devel \
libstdc++-devel.i686 \
libXi \
libXi.i686 \
libXtst \
libXtst.i686 \
make \
sysstat \
unixODBC \
unixODBC-devel \
&& yum clean all
# 创建安装目录
RUN mkdir -p $ORACLE_HOME && chown -R oracle:dba $ORACLE_BASE
# 设置工作目录
WORKDIR $ORACLE_HOME
# 将Oracle数据库软件复制到容器中
COPY oracle-database-ee-23c-1.0-1.x86_64.rpm /tmp/
# 安装Oracle数据库软件
RUN yum localinstall -y /tmp/oracle-database-ee-23c-1.0-1.x86_64.rpm \
&& rm -rf /tmp/oracle-database-ee-23c-1.0-1.x86_64.rpm \
&& yum clean all
# 设置Oracle数据库的character set
ENV NLS_LANG=AMERICAN_AMERICA.AL32UTF8
# 配置Oracle环境变量
COPY docker-entrypoint-oracle.sh /usr/local/bin/
RUN chmod +x /usr/local/bin/docker-entrypoint-oracle.sh
# 设置Oracle数据库的启动命令
ENTRYPOINT ["/usr/local/bin/docker-entrypoint-oracle.sh"]
# 设置Oracle数据库的运行用户
USER oracle
# 暴露Oracle数据库的默认端口
EXPOSE 1521
# 容器启动时运行Oracle实例和监听器
CMD ["exec", "/usr/local/bin/docker-entrypoint-oracle.sh"]
这个Dockerfile演示了如何在Docker容器中安装Oracle Database 23c。它首先基于Oracle Linux 23-slim镜像设置环境变量,然后安装必要的依赖包。接下来,它创建了Oracle软件需要的目录并设置权限,并将Oracle数据库软件包复制到容器中进行安装。最后,它设置了Oracle数据库的环境变量,并定义了数据库实例的启动和运行方式。
评论已关闭