我使用本地docker镜像并使用StatefulSet将oracle数据库从.yaml文件部署到kubernetes。
镜像是100 GB,在使用kubectl apply -f file.yaml运行后,数据库被挂载,当安装完成时容器关闭,pod创建新容器,结果相同,等等。
如果我用docker run从docker运行容器。容器工作,我可以进入和使用数据库,只有在k8s集群得到的问题,其测试从3台计算机,本地和云(eks)的结果是相同的。
Dockerfile是:第一个月
startup.sh文件是:
sqlplus SYS/SYS as sysdba <<EOF
startup
exit
EOF
/bin/bash
字符串
在日志中我看到启动,然后完成退出;命令和pod示例崩溃:Database mounted. ORA-03113: end-of-file on communication channel Process ID: 124 Session ID: 261 Serial number:23381 SQL> Disconnected from Oracle Database 19c Standard Edition 2 Release 19.0.0.0.0 - Production
个
我希望有人能给予我建议。
1条答案
按热度按时间jc3wubiy1#
问题出在命令执行上。容器将在启动过程完成后立即停止。您将被要求永远运行您的进程。如果它是一个http服务器,那么它将永远运行。所以最好是启动主要服务或者你可以把
字符串
在部署yaml的容器规范中。请参考此https://devopscube.com/keep-docker-container-running/