首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >nestjs应用程序无法连接到Postgresql Docker容器

nestjs应用程序无法连接到Postgresql Docker容器
EN

Stack Overflow用户
提问于 2022-09-30 09:35:56
回答 2查看 308关注 0票数 1
代码语言:javascript
复制
I got the project, I try the game and it gives out:

ERROR [TypeOrmModule] Unable to connect to the database. Retrying (2)...
    error: ������������ "admin" �� ������ �������� ����������� (�� ������)
        at Parser.parseErrorMessage (E:\Programming\Nodejs\LandPro\sportmaster\sportmaster_bitbucket\node_modules\pg-protocol\src\parser.ts:369:69)

该项目在docker中定义了一个容器-Compose.yml,但是应用程序本身是本地的,而不是在docker中。

  1. I运行的-d容器是创建的,我看必要的数据库是创建

  1. I启动nest应用程序,错误是-它无法连接到数据库。

docker-compose.yml:

版本:'3.8‘服务: db: container_name: sportmaster映像: postgres:14.4重新启动:总是环境:- POSTGRES_USER=${TYPEORM_USERNAME} - POSTGRES_PASSWORD=${TYPEORM_PASSWORD} - POSTGRES_DB=${TYPEORM_DATABASE}卷:./pgdata:/var/lib/postgresql/数据端口:- ${TYPEORM_PORT}:${TYPEORM_PORT}

.env:

代码语言:javascript
复制
TYPEORM_USERNAME=admin
TYPEORM_PASSWORD=admin
TYPEORM_DATABASE=sportmasterDB
TYPEORM_PORT=5432

typeOrm配置:

代码语言:javascript
复制
const ormconfig: TypeOrmModuleOptions = {
  type: 'postgres',
  username: process.env.TYPEORM_USERNAME,
  password: process.env.TYPEORM_PASSWORD,
  database: process.env.TYPEORM_DATABASE,
host: 'localhost',
  port: 5432,
  logging: false,
  entities: [
    Order,
  ],
  synchronize: true,
  autoLoadEntities: true,
};

export default ormconfig;

码头工人-撰写ps:

命名命令国端口

sportmaster docker-entrypoint.sh postgres上升0.0.0.0:5432->5432/tcp

EN

回答 2

Stack Overflow用户

发布于 2022-11-03 16:29:17

我最近也遇到了同样的问题。在我的例子中,它是由运行在Windows上的postgres service和侦听同一个端口引起的。显然,我一段时间前安装的,完全忘记了。我几乎肯定你也有同样的问题。试着阻止postgres service

为了停止Windows,请按Win+R,然后键入services.msc,按回车,找到默认服务,停止它。您还可以将它的启动类型更改为manual,以防止它在启动时启动。

票数 1
EN

Stack Overflow用户

发布于 2022-09-30 12:47:06

您需要在数据库设置中提供“主机”。

试试这个:

代码语言:javascript
复制
const ormconfig: TypeOrmModuleOptions = {
  type: 'postgres',
  host: db,
  username: process.env.TYPEORM_USERNAME,
  password: process.env.TYPEORM_PASSWORD,
  database: process.env.TYPEORM_DATABASE,
  port: 5432,
  logging: false,
  entities: [
    Order,
  ],
  synchronize: true,
  autoLoadEntities: true,
};

export default ormconfig;

主机是一个坞-组合数据库服务名称。

您可以在".env“文件中添加此变量。

.env:

代码语言:javascript
复制
TYPEORM_HOST=db
TYPEORM_USERNAME=admin
TYPEORM_PASSWORD=admin
TYPEORM_DATABASE=sportmasterDB
TYPEORM_PORT=5432

typeOrm配置:

代码语言:javascript
复制
const ormconfig: TypeOrmModuleOptions = {
  type: 'postgres',
  host: process.env.TYPEORM_HOST,
  username: process.env.TYPEORM_USERNAME,
  password: process.env.TYPEORM_PASSWORD,
  database: process.env.TYPEORM_DATABASE,
  port: 5432,
  logging: false,
  entities: [
    Order,
  ],
  synchronize: true,
  autoLoadEntities: true,
};

export default ormconfig;

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73906739

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档