我一直在尝试使用InfluxDB (时间序列数据库)并尝试使用Docker。根据我所读到的,我在一个DockerCompose文件中定义了我的nodejs应用程序和DockerCompose。
Dockerfile
FROM node:12
# Create working directory
WORKDIR /usr/src/app
COPY package.json .
RUN npm install
COPY . .
CMD "node" "websocket.js"docker-compose.yml
version: '3'
services:
web:
image: docker-td-node-api
build: .
command: "node websocket.js"
depends_on:
- "influx-db"
influx-db:
image: influxdb
ports:
- "8086:8086"除了我的nodejs应用程序试图与码头容器(使用InfluxDB nodejs库)通信时,一切都正常启动,它不停地说:
web_1 | Getting database names...
web_1 | Error: connect ECONNREFUSED 127.0.0.1:8086
web_1 | at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1141:16) {
web_1 | errno: 'ECONNREFUSED',
web_1 | code: 'ECONNREFUSED',
web_1 | syscall: 'connect',
web_1 | address: '127.0.0.1',
web_1 | port: 8086
web_1 | }我觉得这很奇怪,因为我可以通过一个单独的终端通过端口8086查询数据库:
$curl -G http://127.0.0.1:8086/query --data-urlencode "q=CREATE DATABASE mydb"
{"results":[{"statement_id":0,"messages":[{"level":"warning","text":"deprecated use of 'CREATE DATABASE mydb' in a read only context, please use a POST request instead"}]}]}当我开始使用docker-compose up启动nodejs & InfluxDB时,我可以在一个单独的终端窗口启动nodejs应用程序,它通过端口8086完美地连接起来。
是否有什么东西是我缺少的,是阻止nodejs应用程序在一个码头容器中的沟通,与InfluxDB在另一个码头容器?我觉得docker-compose文件应该为它建立网络。
谢谢
发布于 2020-05-08 01:58:54
@DavidMaze和yogeshwar谢谢您的回复!是的,在我的数据库连接中,我将它更改为influx-db,这是我命名的服务,它工作起来很有魅力!谢谢你的帮忙!
https://stackoverflow.com/questions/61670369
复制相似问题