Gitlab Ci管道问题:Node.js无法连接到Mysql数据库

托比:

我正在尝试建立一个Gitlab Ci管道,可以在其中测试我的nodejs应用程序。问题是,该应用程序无法连接到数据库。我试图像这里配置一切我真的不知道为什么它找不到数据库,也找不到任何其他示例或资源。问题是,该应用程序需要数据库运行,否则它将停止。

对于使用typeorm的数据库连接即时消息:

"type": "mysql",
   "host": "db",
   "port": 3306,
   "username": "root",
   "password": "logistics",
   "database": "logistics",
   "synchronize": true,
   "logging": true,
   "entities": [
      "src/entity/**/*.ts"
   ],
   "migrations": [
      "src/migration/**/*.ts"
   ],
   "subscribers": [
      "src/subscriber/**/*.ts"
   ],
   "cli": {
      "entitiesDir": "src/entity",
      "migrationsDir": "src/migration",
      "subscribersDir": "src/subscriber"
   }

这是我的gitlab.yml:

# https://hub.docker.com/r/library/node/tags/
image: node:13

variables:
  # Configure mysql environment variables (https://hub.docker.com/_/mysql/)
  MYSQL_DATABASE: "logistics"
  MYSQL_ROOT_PASSWORD: "logistics"
  MYSQL_USER: "paramedic"
  MYSQL_PASSWORD: "logistics"
  MYSQL_PORT: "3306"
  
# Check out: http://docs.gitlab.com/ce/ci/docker/using_docker_images.html#what-is-a-service
services:
  - name: mysql:5.7
  
# http://docs.gitlab.com/ce/ci/yaml/README.html#cache
cache:
  paths:
    - backend/node_modules/

test_backend:
  script:
    - cd backend/
    - yarn install
    - yarn start

这是错误消息:

$ yarn start
 yarn run v1.22.4
 warning package.json: No license field
 $ ts-node-dev --project=tsconfig.json --transpileOnly --respawn src/index.ts
 Using ts-node version 8.10.2, typescript version 3.9.2
 Error: getaddrinfo ENOTFOUND db
     at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:66:26)
     --------------------
     at Protocol._enqueue (/builds/stjorueh/rettungsdienstverwalter/backend/node_modules/mysql/lib/protocol/Protocol.js:144:48)
     at Protocol.handshake (/builds/stjorueh/rettungsdienstverwalter/backend/node_modules/mysql/lib/protocol/Protocol.js:51:23)
     at PoolConnection.connect (/builds/stjorueh/rettungsdienstverwalter/backend/node_modules/mysql/lib/Connection.js:116:18)
     at Pool.getConnection (/builds/stjorueh/rettungsdienstverwalter/backend/node_modules/mysql/lib/Pool.js:48:16)
     at /builds/stjorueh/rettungsdienstverwalter/backend/src/driver/mysql/MysqlDriver.ts:884:18
     at new Promise (<anonymous>)
     at MysqlDriver.createPool (/builds/stjorueh/rettungsdienstverwalter/backend/src/driver/mysql/MysqlDriver.ts:881:16)
     at MysqlDriver.<anonymous> (/builds/stjorueh/rettungsdienstverwalter/backend/src/driver/mysql/MysqlDriver.ts:343:36)
     at step (/builds/stjorueh/rettungsdienstverwalter/backend/node_modules/tslib/tslib.js:139:27)
     at Object.next (/builds/stjorueh/rettungsdienstverwalter/backend/node_modules/tslib/tslib.js:120:57) {
   errno: -3008,
   code: 'ENOTFOUND',
   syscall: 'getaddrinfo',
   hostname: 'db',
   fatal: true
 }
Distdev:

尝试不用mysql作数据库主机db您可以在此处阅读说明:https : //docs.gitlab.com/ee/ci/docker/using_docker_images.html#how-services-are-linked-to-the-job

另外,您可以为mysql服务指定别名

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何使用gitlab CI / CD安装连接MySQL数据库

使用sequelize ORM在node.js上连接到Amazon RDS Postgres数据库的问题

使用Tedious和Node JS无法连接到本地SQL Server数据库

为什么我无法将dockerized gitlab运行程序连接到dockerized gitlab ci?

如何从gitlab CI管道中推送到存储库?

从gitlab ci部署Node.js项目

gitlab ci:mysql建立和还原数据库转储

Gitlab CI无法连接到服务

无法为Gitlab CI / CD管道设置执行策略

Gitlab CI管道作业

Gitlab CI管道失败:标记问题

为什么我的PosgreSQL数据库无法连接到我的Node.js后端

有关在GitLab CI管道的图形表示中连接作业的线的问题

使用gitlab ci cd管道时在node js应用中访问env变量

将 JSP 页面连接到本地 MySQL 数据库的问题:错误的数据库名称

Marklogic 9 + Roxy:无法使用 Node.js 连接到创建的数据库

Gitlab + GKE + Gitlab CI 无法克隆 Repository

我在将 mysql 数据库(phpmyadmin)连接到 node.js 时收到错误

Rails 容器无法使用 gitlab ci 连接到 mysql 容器

无法将 Node.js 连接到远程数据库 MariaDB

Gitlab:问题和管道

无法使用 Node.js 连接到 MySQL 数据库

无法连接到 gitlab CI 上的 docker

无法将 Node.js 应用连接到 Cloud SQL 数据库

Gitlab-ci - 管道无法运行

无法连接到 Firebase 实时数据库 (Node.js)

Node.js + MySQL:程序拒绝使用“ECONNREFUSED”连接到远程数据库

无法在 GitLab CI 管道中执行目标

Node js 无法使用 mongoose 连接到我的数据库