Docker БД притока и Nodejs - в соединении отказано - PullRequest
0 голосов
/ 08 мая 2020

Я экспериментировал с InfluxDB (базой данных временных рядов) и пытался использовать Docker. Из того, что я прочитал, я определил свое приложение nodejs и InfluxDB в файле 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 пытается связаться с контейнером docker (с использованием библиотеки 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 приложение в контейнере docker от связи с InfluxDB в другом контейнере docker? У меня создалось впечатление, что файл docker-compose должен sh установить для него сеть.

Спасибо

1 Ответ

0 голосов
/ 08 мая 2020

@ DavidMaze и @yogeshwar Спасибо за ваши ответы! Да, в моем подключении к базе данных я изменил его на influx-db, как я назвал свой сервис, и он работал как шарм! Спасибо за помощь!

...