【发布时间】:2020-09-24 13:11:55
【问题描述】:
我在 docker compose 中遇到端口问题。
我的撰写文件是:
version: '3.1'
services:
db:
hostname: postgres
build:
context: .
dockerfile: Dockerfile.postgres
restart: always
ports:
- "5432:5432"
test:
build:
context: ../..
dockerfile: Dockerfile.test
environment:
DB_URL: "jdbc:postgresql://postgres:5432/postgres?user=postgres&password=postgres"
depends_on:
- postgres
我用于测试的 docker 文件是
FROM openjdk:8
RUN \
curl -L -o sbt-1.2.8.deb http://dl.bintray.com/sbt/debian/sbt-1.2.8.deb && \
dpkg -i sbt-1.2.8.deb && \
rm sbt-1.2.8.deb && \
apt-get update && \
apt-get install sbt && \
sbt sbtVersion
ENV WORK_DIR="/test"
USER root
COPY . ${WORK_DIR}/
RUN cd ${WORK_DIR} && \
sbt test
在运行它时,我得到:
org.postgresql.util.PSQLException:连接到 localhost:5432 被拒绝。检查主机名和端口是否正确,以及 postmaster 是否接受 TCP/IP 连接。
TEST_DB_URL 是 application.conf 中的一个环境变量。
我正在运行单个命令:
docker compose -f docker-compose.yml up db
它工作正常并且 docker ps 显示
0.0.0.0:5432->5432/tcp
但是当我运行 docker compose -f docker-compose.yml up test 时,我会下载依赖项并编译代码并拒绝连接到 localhost:5432。
【问题讨论】:
-
您的错误消息的主机名与
TEST_DB_URL环境变量设置不同(postgres与localhost)。你能展示使用这个变量的代码或配置吗?你能包括建立数据库连接的实际代码吗? -
添加了 sn-p。 @大卫迷宫
标签: scala docker docker-compose sbt