ERROR: connect ECONNREFUSED 127.0.0.1:5432 on Gitlab CI

ERROR: connect ECONNREFUSED 127.0.0.1:5432 on Gitlab CI

我目前正在做一个项目,我对 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

我错过了什么?

谢谢!

您的 npm 命令似乎没有使用变量部分中的 POSTGRES_HOST。相反,它在连接到 postgres 时使用 127.0.0.1 并失败,因为您的服务不是 运行 本地。解决这个问题,它应该在 postgres.

可用

主要问题应该在您的 config/database.js 文件中。

检查此文件中的主机是否为 postgres 而不是 127.0.0.1