在 docker 映像的入口点 shell 脚本上,我想确定 postgresql 容器是否可以侦听连接。对于 mysql,我使用了以下代码段:
while ! mysqladmin ping -h"$MOODLE_DB_HOST" -P $MOODLE_DB_PORT --silent; do
echo "Connecting to ${MOODLE_DB_HOST} Failed"
sleep 1
done
如何使用 postgresql 实现类似的功能?
在 docker 映像的入口点 shell 脚本上,我想确定 postgresql 容器是否可以侦听连接。对于 mysql,我使用了以下代码段:
while ! mysqladmin ping -h"$MOODLE_DB_HOST" -P $MOODLE_DB_PORT --silent; do
echo "Connecting to ${MOODLE_DB_HOST} Failed"
sleep 1
done
如何使用 postgresql 实现类似的功能?
在 dockerfile 添加:
然后在入口点脚本上使用:
另一种方法
另一种方法是使用 netcat:
其中变量
${DB_HOST}
包含数据库主机,同时${DB_PORT}
包含数据库端口。Thas 适用于大多数数据库(除非您想检测其类型以及需要自定义脚本的地方)。