Skip to content

症状与根因

  • mysql TLS 连接报错(Certificate verification failure)
    • 根因:等待 DB 阶段使用的客户端默认启用 TLS,自签证书校验失败。

固定模板(entrypoint.sh 节选)

bash
# 等待 DB(兼容 mariadb 客户端)
until mysql --ssl=FALSE --ssl-verify-server-cert=OFF \
  -h "$DB_HOST" -P "$DB_PORT" -u "$DB_USER" -p"$DB_PASS" \
  -e "SELECT 1" > /dev/null 2>&1; do
  sleep 1
done
  • 使用 --ssl=FALSE --ssl-verify-server-cert=OFF 禁用 TLS 与服务端证书校验(本地/自签场景)。
  • 保持循环静默输出,避免日志刷屏;退出码为 0 后再继续迁移。

日志输出建议

在探活成功后补充打印目标信息,便于排查:

bash
echo "Migrations target DB → host=${DB_HOST} port=${DB_PORT} user=${DB_USER} db=${DB_NAME} (NODE_ENV=${NODE_ENV})"

确保后续看到:Waiting for database → Database is ready → Running migrations … → Nest application started。

本站总访问