我有一个Node.js应用程序(使用新的NestJS)框架,在端口3000上运行。作为数据库,我通过TypeORM使用MySQL。在当地它一切正常。我遇到了码头化问题。
我的TypeORM配置:
{
"type": "mysql",
"host": "localhost",
"port": 3306,
"username": "root",
"password": "root",
"database": "nest",
"entities": ["src/**/*.entity{.ts,.js}"],
"synchronize": true
}
我的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:
我一直在阅读关于这个特定场景的文档,所有这些都应该可以正常工作。
Bash'ing到MySQL容器显示数据库运行正常。但是Node框架吐出Unable to connect to the database...
。我错过了docker-compose.yml
文件中的内容吗?
答案 0 :(得分:5)
尝试"host": "db"
而不是localhost。 Docker-compose使用服务名称作为其DNS条目