最近部署个.netCore服务,调用Oracle11G的数据库,代码本地运行正常,但是发布到docker上后就开始报以下错误:
ORA-00604: error occurred at recursive SQL level 1
ORA-01882: timezone region not found
百度了解决办法,尝试了几种方法,记录下最简单的一种,设置环境变量,同步时区。
docker run -e TZ=Asia/Shanghai --name container -d image
如果容器已经运行
docker exec -it containerID /bin/bash
echo "Asia/Shanghai" > /etc/timezone
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
docker resart containerID
确保 date -R 看到是 +0800 字样(我们在中国嘛)
date -R
Wed, 22 May 2024 10:03:14 +0800
修改后调用正常, 不得不补充一句,不知道是为了简化还是安全,dockerHub 上的netcore镜像能运行了命令寥寥无几......