gpt4 book ai didi

node.js - Express 不在 docker 上运行,而是在 localhost 上运行

转载 作者:行者123 更新时间:2023-12-04 03:12:35 25 4
gpt4 key购买 nike

我正在努力将我的后端部署到 docker 容器。我发现,我的问题是 express 框架。首先,我必须说,在我的本地主机上一切正常。但是当我将我的应用程序部署到服务器时,我收到了 503 错误(服务不可用)。如果我不是通过 express 初始化我的应用程序,那么一切也在 docker 容器内工作。那么可能是什么问题呢?这是我的 docker 代码:

FROM node:alpine


RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app

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

EXPOSE 9080

CMD [ "npm", "start" ]

这是我的 Node 代码:
var express = require('express');
var app = express();

app.listen(process.env.PORT || 9080);

app.get('/test', function(req, res){
res.send("hi");
});

这是我的 package.json:
{
"name": "server",
"version": "1.0.0",
"description": "Backend Shareco",
"main": "index.js",
"scripts": {
"start": "node index.js"
},
"author": "Shareco GmbH",
"license": "ISC",
"dependencies": {
"multer": "1.1.0",
"mysql": "^2.13.0",
"express": "^4.14.0"
}
}

为什么它不起作用?将不胜感激任何帮助。

亲切的问候,

安德烈

最佳答案

运行 docker build 后,运行 docker run 时需要使用 -p 标签实现端口转发。
在你的情况下,你会跑

docker run -p 5000:9080 <image id>
现在,当您转到 http://localhost:5000 时,您应该会看到您的应用程序正在运行。

关于node.js - Express 不在 docker 上运行,而是在 localhost 上运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43829721/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com