错误:在 Gitlab CI 上连接 ECONNREFUSED 127.0.0.1:5432
Posted
技术标签:
【中文标题】错误:在 Gitlab CI 上连接 ECONNREFUSED 127.0.0.1:5432【英文标题】:ERROR: connect ECONNREFUSED 127.0.0.1:5432 on Gitlab CI 【发布时间】:2021-02-17 09:23:17 【问题描述】:我目前正在做一个项目,我对 Gitlab 的 CI 有一个大问题。使用docker-compose
构建的容器有两种,一种是API,另一种是PostgreSQL数据库。
这是我的 gitlab-ci.yml :
image: node:lastest
variables:
POSTGRES_DB: test
POSTGRES_USER: user
POSTGRES_PASSWORD: pass
POSTGRES_HOST: postgres
POSTGRES_PORT: 5432
POSTGRES_HOST_AUTH_METHOD: trust
NODE_ENV: test
services:
- postgres:12.2-alpine
stages:
- test
eslint:
stage: test
image: node:12.18.2-alpine3.9
before_script:
- npm install
script:
- npm run linter
except:
- develop
audit:
stage: test
image: node:12.18.2-alpine3.9
before_script:
- npm install
- npm install -g sequelize-cli
- npx sequelize-cli db:create
script:
- npm test
allow_failure: false
except:
- develop
所以,我收到了这个错误:
$ npx sequelize-cli db:create
Sequelize CLI [Node: 12.18.2, CLI: 6.2.0, ORM: 6.3.5]
Loaded configuration file "config/database.js".
Using environment "development".
ERROR: connect ECONNREFUSED 127.0.0.1:5432
Cleaning up file based variables
00:01
ERROR: Job failed: exit code 1
我错过了什么?
谢谢!
【问题讨论】:
我不知道 gitlab CI,但我想你必须正确设置包含 PostgreSQL 服务器实例的容器的 IP 或名称。 【参考方案1】:您的 npm 命令似乎没有在变量部分使用 POSTGRES_HOST。相反,它在连接到 postgres 时使用 127.0.0.1 并且由于您的服务未在本地运行而失败。解决这个问题,它应该可以在postgres
获得。
【讨论】:
【参考方案2】:主要问题应该在您的config/database.js
文件中。
检查这个文件中的主机是postgres
而不是127.0.0.1
【讨论】:
谢谢!我刚刚将 gitlab-ci 文件中的DATABASE_IP
环境变量替换为值 postgres
以上是关于错误:在 Gitlab CI 上连接 ECONNREFUSED 127.0.0.1:5432的主要内容,如果未能解决你的问题,请参考以下文章
Gitlab CI 设置错误 - 找不到 JavaScript 运行时