Akka http dockering问题仅在撰写中

问题描述

我有一个带有数据库连接的akka​​ http简单应用程序,要使用 sbt native packager 插件对其进行docker化。 如果我像这样运行数据库

docker run --name some-postgres -e POSTGRES_PASSWORD=mysecretpassword -d postgres

和应用:

docker run -p 8080:8080 --network="host" --rm my-system-backend:0.1

一切正常,我可以发出curl请求,应用正在进行正确的数据库调用等。 但是当我使用docker-compose时它不起作用,然后出现错误

卷曲:(56)接收失败:对等重置连接

version: '3'

services:
  backend:
    image: my-system-backend:0.1
    environment:
      DB_URL: "jdbc:postgresql://database:5432/db"
    ports:
     - 8080:8080
    depends_on:
      - database
  database:
    image: postgres:13
    ports:
      - 5432:5432
    environment:
      POSTGRES_USERNAME: "postgres"
      POSTGRES_PASSWORD: "postgres"
      POSTGRES_DB: "db"
    volumes:
      - ./databasedata:/var/lib/postgresql/data/

build.sbt的一部分:

lazy val root = (project in file("."))
  .configs(IntegrationTest)
  .settings(
    Defaults.itSettings,libraryDependencies ++= ...,dockerExposedPorts ++= Seq(8080)
  )
  .enablePlugins(FlywayPlugin,JavaAppPackaging)

任何想法为什么不起作用?

解决方法

好吧,我知道了,我错过了:network_mode: "host"在docker-compose文件中