问题描述
我有一个带有数据库连接的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文件中