我是节点、嵌套和对接方面的初学者,但不知怎的,我被分配给所有现有的节点js应用程序进行对接。
我遵循其中一个youtube教程并成功地通过docker部署了基本的hello世界,但是在下一个youtube教程中,当我试图将Postgres添加到码头时,我在连接到Postgres时遇到了一些问题。
我在mac上使用的是码头桌面。
这里是我的docker-compose.yml 文件代码片段
version: "3.9" # optional since v1.27.0
services:
api:
build:
dockerfile: Dockerfile
context: .
depends_on:
- postgres
environment:
DATABASE_URL: postgres://user:password@postgres:5432/db
NODE_ENV: developement
PORT: 3000
ports:
- "8080:3000"
postgres:
image: postgres:14.0
ports:
- "35000:5432"
environment:
POSTGRES_USER: user
POSTGRES_PASSWORD: password
POSTGRES_DB: db这里是整个错误日志

本项目的Github储存库
(谢谢你提前提供帮助:)
发布于 2021-11-10 07:42:22
您的问题是DATABASE_URL中的一个错误。在代码中,用于连接数据库使用DATABSE_URL字,而在坞-组合使用DATABASE_URL。
您应该将url: process.env.DATABSE_URL更改为url: process.env.DATABASE_URL
发布于 2021-11-10 08:12:36
确保连接字符串在docker-compose.yml中是正确的。只需传递主机、端口、用户和单独传递,让TypeOrm处理连接。
// app.module.ts
TypeOrmModule.forRoot({
type: 'postgres',
host: process.env.POSTGRES_HOST,
port: process.env.POSTGRES_PORT,
username: process.env.POSTGRES_USER,
password: process.env.POSTGRES_PASSWORD,
database: process.env.POSTGRES_DB,
})和你的船坞-合成人:
# docker-compose.yml
version: '3.9'
services:
api:
build:
dockerfile: Dockerfile
context: .
depends_on:
- postgres
environment:
- POSTGRES_HOST=postgres
- POSTGRES_PASSWORD=promo-pass
- POSTGRES_USER=promo-user
- POSTGRES_DB=promo-api-db
- POSTGRES_PORT=5432
postgres:
container_name: postgres
image: postgres
environment:
POSTGRES_USER: promo-user
POSTGRES_PASSWORD: promo-pass
POSTGRES_DB: promo-api-dbhttps://stackoverflow.com/questions/69908709
复制相似问题