我有一个使用express的node应用程序,正在尝试使用heroku进行部署。
import http from 'http';
import express from 'express';
import pagesRouter from './routes/pages';
import nconf from 'nconf';
const app = express();
app.use(pagesRouter);
const port = process.env.PORT || nconf.get('port');
server = http.createServer(app);
server.listen(port);
字符串
在本地创建服务器并为我创建的所有路由提供服务时,这种方法工作得很好。
然后,我尝试通过创建一个dockerfile将其dockerize以部署到heroku,并为此创建heroku.yml:
FROM node:18.12.1
WORKDIR ./
COPY . .
ENV NODE_ENV production
RUN npm ci
RUN npm run build
RUN npm prune --production
EXPOSE 6001
CMD ["npm", "run", "start"]
build:
docker:
web: Dockerfile
的数据
查看heroku的日志,我可以看到它正在运行并正确启动,但是当我尝试单击“打开应用程序”以查看在https://www.damp-garden-69923.herokuapp.com/
上运行的应用程序时,我得到以下错误:
This site can’t be reached
www.damp-garden-69923.herokuapp.com’s server IP address could not be found.
ERR_NAME_NOT_RESOLVED
型
我不知道我是不是漏掉了什么,但如果有任何帮助,我会很感激的
注意:我使用的是GUI而不是heroku CLI
1条答案
按热度按时间xqk2d5yq1#
根据这里的answer,你不应该使用expose,你应该使用docker compose文件中的ports。