У меня есть сервер 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