提问人:ronzenith 提问时间:12/22/2019 更新时间:12/22/2019 访问量:432
如何找到 CI/CD 的数据库主机地址?
How to find my database host address for CI / CD?
问:
我将在AWS的gitlab中进行CI / CD。我的网站包含一个 Postgresql 数据库。
问题 1:但是我不知道如何找到数据库主机。有人说主机名是 localhost,但我对此表示怀疑,因为我已将我的网站部署到 AWS。应该是弹性IP?
我的 .gitlab-ci.yml 文件如下:
image: node:latest
stages:
- testing
variables:
POSTGRES_DB: firstdb
POSTGRES_USER: johndoe
POSTGRES_PASSWORD: 1234
POSTGRES_HOST: //I don't know
testing:
services:
- postgres:latest
before_script:
- npm install -g yarn
- yarn install
- yarn knex migrate:latest --env testing
stage: testing
script:
- yarn jest
问题 2:另外,我是否应该相应地更改 knex.ts 开发、测试和生产的数据库配置,使其与 .gitlab-ci.yml 保持一致?
我的 knex 文件如下:
import * as dotenv from 'dotenv';
dotenv.config();
module.exports = {
development: {
client: 'postgresql',
connection: {
database: process.env.DB_NAME , //should I type actual data?
user: process.env.DB_USERNAME ,
password: process.env.DB_PASSWORD
},
pool: {
min: 2,
max: 10
},
migrations: {
tableName: 'knex_migrations'
}
},
testing:{
client: 'postgresql',
connection: {
host: process.env.POSTGRES_HOST ,//should I type actual data?
database: process.env.POSTGRES_DB ,
user: process.env.POSTGRES_USER ,
password: process.env.POSTGRES_PASSWORD
},
pool: {
min: 2,
max: 10
},
migrations: {
tableName: 'knex_migrations'
}
},
production: {
client: "postgresql",
connection: {
database: process.env.DB_NAME ,//should I type actual data?
user: process.env.DB_USERNAME ,
password: process.env.DB_PASSWORD
},
pool: {
min: 2,
max: 10
},
migrations: {
tableName: "knex_migrations"
}
}
};
提前非常感谢。:)
答:
1赞
Arun Kamalanathan
12/22/2019
#1
主机名为 。主机名派生自映像名称。postgres
解释如下: https://docs.gitlab.com/ee/ci/docker/using_docker_images.html#how-services-are-linked-to-the-job
评论
0赞
ronzenith
12/22/2019
当我使用 \conninfo 从终端调用主机时,它返回套接字而不是主机。我可以知道为什么吗?您以用户“johndoe”的身份连接到数据库“firstdb”,通过端口“5432”的“/var/run/postgresql”中的套接字//
0赞
Arun Kamalanathan
12/22/2019
所以你可以通过 postures hostname 访问数据库吗?
0赞
Arun Kamalanathan
12/22/2019
我不明白你说的套接字而不是主机是什么意思
0赞
ronzenith
12/22/2019
我可以从远程服务器访问数据库,但我需要部署并执行 CI/CD 过程。这就是为什么我需要POSTGRES_HOST。而且,我从其他帖子中看到 \conninfo 命令可以返回主机名、数据库名称、用户和端口号。我的返回一个套接字.....
0赞
Arun Kamalanathan
12/22/2019
您从哪里运行命令。您可能已连接到本地 postgres?
评论