【发布时间】:2019-04-14 11:44:19
【问题描述】:
当我尝试在同一台机器上连接两个 docker 容器,一个运行 node.js 服务器,另一个运行 >mysql 数据库
我收到以下错误:
(node:32) UnhandledPromiseRejectionWarning: Error: getaddrinfo ENOTFOUND jdbc:mysql://localhost:3306 jdbc:mysql://localhost:3306:3306
mysql驱动连接配置
const connection= mysql.createConnection({
host: 'jdbc:mysql://topsectiondb:3306',
user: 'root',
password: 'rootpass'
})
docker-compose.yml
version: '3'
services:
topsection:
container_name: topsection-server
restart: always
build: .
ports:
- '7777:7777'
depends_on:
- topsectiondb
environment:
- PORT=7777
topsectiondb:
container_name: topsectiondb
image: mysql:8.0.3
ports:
- '3306:3306'
environment:
- MYSQL_ROOT_PASSWORD=rootpass
Dockerfile
FROM node:10
RUN mkdir serviceFolder
WORKDIR /usr/app/
COPY . .
RUN npm install
EXPOSE 7777
CMD ["npm", "start"]
以获得更完整的堆栈跟踪 https://gist.github.com/armouti/877a8b4405330c44e4009ebae3df822c
【问题讨论】:
-
您的错误只是意味着您尝试建立连接的 URL 不存在。 IE。它没有在 nodejs 容器的本地主机上运行。
-
@DavidMaze 该问题的答案有些过时了,他们使用旧版 --link
标签: mysql node.js docker docker-compose dockerfile