Не удается получить доступ по ссылке на сервер node.js, работающий внутри докку - PullRequest
0 голосов
/ 13 ноября 2018

У меня есть сервер node.js, работающий внутри dokku на порту 8080, но я не могу получить к нему доступ, открыв ссылку http://my -digital-ocean-ip: 8080 .Я проверил журналы приложения, сервер был успешно запущен на порту 8080: вот скриншот журналов .

Для запуска сервера я использую graphql-yoga но я думаю, что это больше проблема Digital Ocean, может быть, что-то с конфигами или хостами, потому что, если я запускаю приложение на моей локальной машине, оно будет успешно открыто на http://localhost:4000 (4000 - порт по умолчанию).

Кроме того, у меня есть еще одно приложение dokku, работающее на той же капле Digital Ocean на порту 4646, и оно отлично работает, но это не приложение node.js, это сервис prisma .Я попытался запустить только одно из этих приложений dokku, но это никак не отразилось.

Кроме того, я попытался изменить порт 8080 на 4000, 80, и это тоже не помогло.

Вот код моего index.js:

require('dotenv').config();

const { GraphQLServer } = require('graphql-yoga');

const { prisma } = require('./generated');
const { resolvers } = require('./resolvers');


const server = new GraphQLServer({
  typeDefs: 'src/schema.graphql',
  resolvers: resolvers,
  context: {
    prisma: prisma,
  },
  resolverValidationOptions: {
    requireResolversForResolveType: false,
  },
});


server.start(({ port }) => console.log(`GraphQL server is running on the port ${port}`));

Вот код Dockerfile:

FROM node:10.13.0

WORKDIR /usr/src/app
COPY package*.json ./
RUN npm install
COPY . .

EXPOSE 8080

CMD [ "npm", "start" ]

Вот мой репо - https://github.com/SilencerWeb/follow-api-server/tree/development

...