簡體   English   中英

Scala JDBC 項目不會在 Docker 容器之外運行?

[英]Scala JDBC project won't run outside of Docker Container?

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 容器到 go 之外的另一個 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

scala 項目的入口點

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 之外無法訪問。 嘗試通過psqlpgcli或其他客戶端連接到它,你會看到。

當您調用docker-compose psdocker ps時,您將能夠看到如何連接到 Postgres 0.0.0.0:5432圖像 2 (在ports 00 下) - 很可能是 0.54。

例如,如果我有:

> 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 和光滑無關。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM