com.zaxxer.hikari.pool.HikariPool$PoolInitializationException: Failed to initialize pool: The connection attempt failed.
输入sbt run
时出现上述错误 但是,在我的 docker 容器中一切正常。
在第一个容器中,我有一个 postgres 数据库。第二个容器 我有一个从我的项目文件夹构建的映像。当我运行docker-compose up --build
一切正常时。
我怀疑该项目(实际代码库(无法在 docker-compose 容器中看到 postgres 数据库。
我是否需要在 docker-compose 容器之外使用另一个 postgres 数据库来与容器外的项目代码一起使用?
docker-compose.yml 文件。
version: '3.6'
services:
# App Backend PostgreSQL
postgres:
container_name: sportsAppApiDb
image: postgres:11.7-alpine
environment:
POSTGRES_USER: admin
POSTGRES_PASSWORD: password
POSTGRES_URL: postgres://admin:password@localhost:5432/sportsappapi
POSTGRES_DB: sportsappapi
POSTGRES_HOST: postgres
ports:
- "5432:5432"
# App Backend
sports-app-api:
container_name: sportsAppApi
build: ./
volumes:
- ./:/usr/src/sports-app-api
command: sbt run
working_dir: /usr/src/sports-app-api
ports:
- "8000:8000"
environment:
POSTGRES_URI: postgres://admin:password@postgres:5432/sportsappapi
Ascend a 项目的入口点
object SportsAppApiStartup extends App {
SportsAppApiDb(SportsAppApiConfig.appDb).init
WebServer(Endpoints.handler, 8000).start()
println(s"Running sports-app-api on port: 8000")
}
在postgres:5432
下,您的数据库无法在 docker-compose 之外访问。尝试通过psql
或pgcli
或其他客户端连接到它,您将看到。
当您调用docker-compose ps
或docker ps
时,您将能够看到如何连接到Postgres码头工人映像(在ports
下( - 很可能是类似于0.0.0.0:5432
。
例如,如果我有:
> docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
d90871418bcb postgres "docker-entrypoint.s…" 2 weeks ago Up 4 days 0.0.0.0:7766->5432/tcp postgres_container
这意味着 Postgres 在 Docker 外部的0.0.0.0:7766
下可用。
据我所知,这与Scala,sbt和slick无关。