使用MySQL docker容器网络设置的Node.js

Dam*_*ski 0 mysql node.js docker docker-compose nestjs

我有一个运行在端口3000上的Node.js应用程序(使用新的NestJS)框架。作为数据库,我通过TypeORM使用MySQL。在本地,一切正常。我在将其码头化时遇到问题。

我的TypeORM配置:

{
    "type": "mysql",
    "host": "localhost",
    "port": 3306,
    "username": "root",
    "password": "root",
    "database": "nest",
    "entities": ["src/**/*.entity{.ts,.js}"],
    "synchronize": true
}
Run Code Online (Sandbox Code Playgroud)

docker-compose.yml的如下:

version: "3"
services:
  db:
    image: mysql
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: root
      MYSQL_DATABASE: nest
      MYSQL_USER: root
      MYSQL_PASSWORD: root
    networks:
      - new
  nest:
    image: grimscythe/nest-sample
    depends_on:
      - db
    ports:
      - 3000:3000
    networks:
      - new
networks:
  new:
Run Code Online (Sandbox Code Playgroud)

我一直在阅读有关此特定方案的文档,所有文档都应该可以正常工作。扑向MySQL容器表明数据库正在正常运行。但是,Node框架随处可见Unable to connect to the database...。我在docker-compose.yml文件中丢失了什么吗?

bra*_*ett 5

尝试"host": "db"代替localhost。Docker-compose使用服务名称作为其DNS条目