Разверните Dockerized Node с mongoDB на Heroku, не можете найти адрес mon go - PullRequest
0 голосов
/ 07 марта 2020

Я пытаюсь развернуть мой Node.js, express, mongoDB, докеризованный на Heroku. После создания образа в журналах Heroku я вижу:

2020-03-07T12:51:12.880526+00:00 heroku[web.1]: Starting process with command `npm start`
2020-03-07T12:51:16.087665+00:00 app[web.1]: 
2020-03-07T12:51:16.087677+00:00 app[web.1]: > esemeny-back@1.0.0 start /usr/src/app
2020-03-07T12:51:16.087678+00:00 app[web.1]: > node server.js
2020-03-07T12:51:16.087678+00:00 app[web.1]: 
2020-03-07T12:51:16.937790+00:00 app[web.1]: app error { Error: getaddrinfo ENOTFOUND mongo mongo:27017
2020-03-07T12:51:16.937806+00:00 app[web.1]: at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:56:26)
2020-03-07T12:51:16.937807+00:00 app[web.1]: name: 'MongoNetworkError',
2020-03-07T12:51:16.937807+00:00 app[web.1]: errorLabels: [ 'TransientTransactionError' ],
2020-03-07T12:51:16.937808+00:00 app[web.1]: [Symbol(mongoErrorContextSymbol)]: {} }
2020-03-07T12:51:16.948788+00:00 app[web.1]: npm ERR! code ELIFECYCLE
2020-03-07T12:51:16.949327+00:00 app[web.1]: npm ERR! errno 1
2020-03-07T12:51:16.951211+00:00 app[web.1]: npm ERR! esemeny-back@1.0.0 start: `node server.js`
2020-03-07T12:51:16.951445+00:00 app[web.1]: npm ERR! Exit status 1
2020-03-07T12:51:16.951838+00:00 app[web.1]: npm ERR!
2020-03-07T12:51:16.952103+00:00 app[web.1]: npm ERR! Failed at the esemeny-back@1.0.0 start script.
2020-03-07T12:51:16.952335+00:00 app[web.1]: npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

С локальной docker -составить все работает нормально, я могу подключиться к mon go с моего сервера.

Вот мой Dockerfile:

FROM node:10

WORKDIR /usr/src/app

COPY package*.json ./

RUN npm install

COPY . .

EXPOSE 9000

CMD ["npm", "start"]

И мой docker -compose.yml

version: '3'
services:
  mongo: 
    container_name: mongo
    image: mongo
    ports:
      - '27017:27017'
  app:
    container_name: docker-node-mongo
    restart: always
    build: .
    ports:
      - '9000:3000'
    links:
      - mongo

И, наконец, это мое мон goose соединение с сервера. js

mongoose
  .connect('mongodb://mongo:27017/events_db', {
    useNewUrlParser: true,
    useUnifiedTopology: true,
    useCreateIndex: true,
    useFindAndModify: false,
  })
  .then(() => {
    app.listen(process.env.PORT, err => {
      if (!err) {
        log.info(`Server started on port ${process.env.PORT}`);
        log.info(`Server mode: ${process.env.NODE_ENV}`);
      }
    });
  })
  .catch(err => {
    log.error(err);
    process.exit(1);
  });

Есть идеи? Я попытался добавить мой mon go ip в конфигурационные переменные Heroku, не повезло.

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