Как подключиться к производственной базе данных из контейнера Docker? - PullRequest
0 голосов
/ 28 марта 2019

Я пытаюсь докеризировать приложение node.js, которое ранее работало на Heroku, с надстройкой postgres в качестве производственной базы данных. Невозможно подключиться к базе данных из контейнера.

Файл Docker

FROM node:8 WORKDIR /usr/src/app COPY package*.json ./ RUN npm install COPY . . EXPOSE 8080 CMD ["npm","start"]

Docker Compose file

version: '3' services: web: build: . ports: - "5000:5000" - "5432:5432" env_file: .env extra_hosts: - "iondev:172.27.27.59"

Ошибка web_1 | {"level":30,"time":1553864230376,"msg":"Narrafy listening on port 5000","pid":16,"hostname":"961f47819c3e","v":1} web_1 | {"level":50,"time":1553864230399,"msg":"Failed to connect to DB.","pid":16,"hostname":"961f47819c3e","v":1} web_1 | {"level":50,"time":1553864230399,"msg":"Connection terminated unexpectedly","pid":16,"hostname":"961f47819c3e","type":"Error","stack":"Error: Connection terminated unexpectedly\n at Connection.con.once (/usr/src/app/node_modules/pg/lib/client.js:200:9)\n at Object.onceWrapper (events.js:313:30)\n at emitNone (events.js:106:13)\n at Connection.emit (events.js:208:7)\n at Socket.<anonymous> (/usr/src/app/node_modules/pg/lib/connection.js:130:10)\n at emitNone (events.js:111:20)\n at Socket.emit (events.js:208:7)\n at endReadableNT (_stream_readable.js:1064:12)\n at _combinedTickCallback (internal/process/next_tick.js:139:11)\n at process._tickCallback (internal/process/next_tick.js:181:9)","v":1}

1 Ответ

0 голосов
/ 29 марта 2019

Без dockerfile невозможно отладить эту проблему.Скорее всего, проверьте свои кредиты БД и убедитесь, что вы передаете их как переменную ENV.

Журналы можно проверить с помощью журналов докера <идентификатор контейнера>.

Или использовать команду docker exec для проверки переменных среды.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...