我有一个node.js服务器在端口8080上的dokku中运行,但是我无法通过打开链接http://my-digital-ocean-ip:8080来访问它。我检查了应用程序的日志,服务器已成功在端口8080上启动:here is a screenshot of logs。
我正在使用graphql-yoga运行服务器,但我认为这是Digital Ocean的问题,可能与配置或主机有关,因为如果我在本地计算机上运行该应用程序,它将在{ {3}}(默认端口为4000)。
此外,我还有另一个dokku应用程序,该应用程序在端口4646上的同一Digital Ocean Droplet上运行,并且运行良好,但是它不是node.js应用程序,而是http://localhost:4000服务。我试图只运行其中的一个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" ]
这是我的仓库-prisma