node.js - 运行 localhost 时无法获取 NodeJS 错误
问题描述
希望每个人都做得很好。我正在尝试将此应用程序转换为 docker,但出现无法 GET / NodeJS 错误这是我的 express.js 文件
const express = require("express");
const app = express();
const portNumber = 3000;
const sourceDir = "dist";
const expressStaticGzip = require("express-static-gzip");
app.use(
"/",
expressStaticGzip(sourceDir, {
enableBrotli: true,
orderPreference: ["br", "gz"],
setHeaders: function(res, path) {
res.setHeader("Cache-Control", "public, max-age=31536000");
}
})
);
app.listen(portNumber, "0.0.0.0", () => {
console.log(`Express web server started: http://0.0.0.0:${portNumber}`);
console.log(`Serving content from /${sourceDir}/`);
});
这是我的码头文件
FROM node:14
WORKDIR /usr/src/app
COPY package*.json ./
RUN npm install
COPY . .
CMD [ "node", "express.js" ]
帮助表示赞赏。
解决方案
您的代码和 Dockerfile 是正确的,我认为您忘记公开 docker 端口。(码头工人文档)
解决方案:
docker run -p <local-port>:<container-port> <image-name>
# docker run -p 3000:3000 image-name
推荐阅读
- java - 过滤器列表包含多个对象java
- c# - Type name "OleDbDataAdapter" could not be found in the namespace "System.Data.OleDb"
- ios - 与 UIKit PKCanvasView 下方的 SwiftUI 视图交互
- c - 你能帮我吗,在第 6 和第 7 个打印语句中递增是如何工作的
- discord.js - 设置后如何清除我的 Discord 机器人的状态?
- java - 如何在对 Spring Boot 的 GET 请求中格式化对象
- pine-script - Pine Editor 使用 plot() 为最后的 X 条创建一条恒定线
- consul - 使用 Ocelot 的 Consul 集群未使用所有服务
- c - 在 c 中找到 N 的 N 个不同因子
- python - oauth2client.client.HttpAccessTokenRefreshError: invalid_grant: 令牌已过期或撤销