我在gitlab yml文件中处于后续阶段。
integration-tests:
image: mydocker-hub-id/mvn-intergration-tests-image:latest
stage: test
services:
- postgres
script:
- export PGPASSWORD=$POSTGRES_PASSWORD
- psql -h "postgres" -U "$POSTGRES_USER" -d "$POSTGRES_DB" -c "SELECT 'OK' AS status;"
- cd source_code
- pg_isready
- mvn verify -P test-ci -DskipUTs=true
为命令pg_isready执行作业时,我的响应5432没有响应。 从每个集成测试执行测试时,我都会出错:
org.postgresql.util.PSQLException: Connection to localhost:5432 refused. Check that the hostname and port are correct and that the postmaster is accepting TCP/IP connections.
此阶段使用的图像是基于postgres图像构建的,该图像还安装了maven和java 11。
spring应用程序无法与postgres服务器连接可能是什么问题。命令postgres --version
显示正确的版本。也可以命令
"psql -h "postgres" -U "$POSTGRES_USER" -d "$POSTGRES_DB" -c "SELECT 'OK' AS status;"
返回确定结果。
app.properties中的Spring db连接如下:
spring.datasource.url=jdbc:postgresql://localhost:5432/test
答案 0 :(得分:0)
我在gitlab文档中找到有关postgres服务配置的详细信息
https://docs.gitlab.com/ee/ci/services/postgres.html?fbclid=IwAR1eDlOQ4ACn6zqw1auIetB07JRcCGi1Pjl-hpfGBM45ujvkImm6fHSSbgg
数据库url应该包含主机postgres的名称,而不是localhost。
答案 1 :(得分:0)
我发现gitlab-runner将postgresql docker映像作为postgres运行,并且正在将jdbc:postgresql:// localhost:5432 / dbname更改为jdbc:postgresql:// postgres:5432 / dbname。