我有以下问题我正在创建一个简单的应用程序与Node.js和postgresql
停靠文件
FROM node:18-alpine
WORKDIR /usr/src/app
COPY package*.json ./
RUN yarn install
COPY . .
EXPOSE 3000
CMD [ "yarn", "start" ]
字符串
我打了docker build -t my-app .
它只是工作正常
然后输入docker compose up
使用docker-compose.yml文件
version: '3.8'
services:
db:
image: postgres
environment:
POSTGRES_PASSWORD: password123
POSTGRES_USER: user123
POSTGRES_DB: db123
app:
image: my-app
ports:
- 3333:3000
型
docker打印database system is ready to accept connections
node.js无法连接数据库
我使用这个命令docker ps
检查了正在运行的Docker容器
只有postgres正在运行,我的应用程序状态为Exited(因为它无法连接DB)
然后我用ctrl + c
杀了dockerdocker compose up
my-app和postgres都运行良好。
我想我的docker有时间问题
如果我添加了`restart:always``选项在应用程序服务中工作正常
app:
restart: always
image: my-app
ports:
- 3000:3000
型
但似乎不是一个好的解决方案,我认为...
还有其他解决办法吗?我错过了什么吗
1.添加restart:always option in app service => it works
2.添加依赖项选项但=>不工作
1条答案
按热度按时间46scxncf1#
在我看来,您可能使用了错误的主机将
express.js
服务连接到Postgres
。Docker-Compose:
字符串
连接
express.js
服务到postgres
数据库的主机应为postgres_service。示例如下:
型