我正在使用 Docker 进行一些POC,使用 Tomcat 和 Oracle XE数据库设置工作环境。我可以使用url https://hub.docker.com/r/sath89/oracle-xe-11g/~/dockerfile/中的dockerfile创建 Oracle XE映像,但我的要求是在oracle启动期间使用 Docker 不可知方法初始化模式。
我已尝试使用以下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');
答案 0 :(得分:0)
使用此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"
请注意,要使其正常工作,您需要将卷挂载到脚本的位置。