我正在尝试将 Cloud-Run 部署的应用程序连接到 Google Cloud Platform 上的 Cloud SQL 实例。我可以在本地连接到 Cloud SQL 实例:
gcloud sql connect <Cloud-sql-instance-name> --user=<db-user> --quiet
此外,我可以使用 scalikejdbc 以编程方式成功连接到 Postgres 的本地 docker 实例。所以我的下一步是将 Web 应用程序和 postgres 都放在 GCP 上。我可以成功地让 Web 应用程序在 Cloud-Run 上运行,但我无法让与 Cloud-SQL 的数据库连接正常工作。
当我运行 Cloud-run webapp 以连接到 Cloud-Sql 时,我收到了臭名昭著的错误:
No suitable driver found for jdbc:postgresql://......
在使用 scalikejdbc 时。这是我在 Cloud Run 应用程序中的违规 Scala 代码:
import scalikejdbc._
Class.forName("org.postgresql.Driver")
ConnectionPool.singleton(
s"jdbc:postgresql://myCloudHostName","DB USER","DB Password"
)
// next line explodes with the "no suitable driver found" error:
val now = DB readOnly { implicit session =>
sql"""select now()""".map(r => r.string(0))
.single().apply()
}
也许我使用的基础 docker 映像(adoptopenjdk/openjdk8:alpine-jre
)有问题?