【问题标题】:Initialization of schema during oracle initialization using docker file在 oracle 初始化期间使用 docker 文件初始化模式
【发布时间】:2015-08-16 10:20:40
【问题描述】:

我正在使用 Docker 做一些 POC,使用 TomcatOracle XE 数据库设置工作环境。我可以使用来自 url https://hub.docker.com/r/sath89/oracle-xe-11g/~/dockerfile/ 的 dockerfile 创建一个 Oracle XE 映像,但我的要求是在 oracle 启动期间使用 Docker 不可知的方法初始化架构。 p>

我已经尝试使用下面的 sh 文件来访问一个 .sql 文件,该文件目前包含一个插入脚本(而不是创建模式)。

下面是我的 dbsetup.sh 文件:

#!/bin/sh
echo "Starting file execution"
date
sqlplus -s system/oracle  << EOF >> D:/java/sql@DbScripts.sql
EOF
echo "Completed execution"
echo "Date is : 'date'"

DbScripts.sql

INSERT INTO PRODUCTS VALUES(75340,'PRODUCT2','CATEGORY2');

【问题讨论】:

  • 你可以在 oracle 运行后从 Docker 运行一个脚本来创建模式,就像 Dockerfile 调用 oracle-install.sh... 所以你可以构建你自己的 Dockerfile 来扩展你的链接创建架构。
  • 谢谢您的回答。我没有清楚明白您的意思,请您解释一下您建议的方法。

标签: java oracle docker dockerfile


【解决方案1】:

使用这个Dockerfile。使用以下命令构建 docker 映像:

bash ./buildDockerImage.sh -v 18.4.0 -i -x

启动容器;然后,您可以使用以下命令执行您的脚本:

docker exec -t --user oracle <container_id> bash -c "echo exit | sqlplus system/oracle @<path_to_your_script>DbScripts.sql"

请注意,要使其正常工作,您需要将卷挂载到脚本所在的位置。

【讨论】:

    猜你喜欢
    • 2019-07-16
    • 1970-01-01
    • 2013-09-22
    • 1970-01-01
    • 2014-09-13
    • 1970-01-01
    • 2017-12-10
    • 1970-01-01
    • 2021-03-02
    相关资源
    最近更新 更多