docker升级后dtable服务502

昨天通过yum升级了docker,重启seatable后发现登陆正常,但是点击任何表格都无法打开,发现是访问https:/xxx/dtable-server/dtables/xxx?lang=zh-cn返回502错误。

发现在主机运行docker exec -it seatable /shared/seatable/scripts/seatable.sh start有问题,但是进入容器运行/shared/seatable/scripts/seatable.sh start却是ok的。

/opt/seatable/logs/dtable-server.log中没有任何记录,定位貌似/shared/seatable/scripts/seatable.sh中start_server()的node dist/src/index.js未能正常启动。几经周折,最后发现是运行seatable.sh时node是正常的,但是seatable.sh执行完毕后,服务就关闭了。增加nohup等方法无效,最后调整了后面的sleep 0.2改为sleep 2,解决了问题。

每次docker重启后seatable.sh会重构,需要修改容器中/templates/seatable.sh才是永久的

但是问题原因不明?!

看到seatable.sh中也有大量的sleep做调节,感觉是node服务启动需要时间,尚未完成在后台的正常运行,脚本就结束了,导致异常。但是为啥容器内是对的,主机运行却是有问题的呢?! sleep机制问题?!

docker版本:
containerd.io.x86_64 1.4.4-3.1.el7 @docker-ce-stable
docker-ce.x86_64 3:20.10.6-3.el7 @docker-ce-stable
docker-ce-cli.x86_64 1:20.10.6-3.el7 @docker-ce-stable
docker-ce-rootless-extras.x86_64 20.10.6-3.el7 @docker-ce-stable
docker-scan-plugin.x86_64 0.7.0-3.el7 @docker-ce-stable
docker-ce-selinux.noarch 17.03.3.ce-1.el7 docker-ce-stable