Node Docker 运行,但看不到应用程序

2023-12-10

我的 Hapi 应用程序似乎正在 Docker 容器中运行,但我无法在浏览器中访问它。我以为docker run -d -p 8080:3000本来会这么做的,但我想不会。我正在运行 boot to docker,但两者都没有http://localhost:8080/hello nor http://192.168.99.100:8080/hello工作中。

我也尝试过很多变体。

这是我跑步时看到的docker inspect <container id>:

Server running at: http://localhost:8080

这是我的 Hapi.js 服务器:

'use strict';

const Hapi = require('hapi');

// Create a server with a host and port
const server = Hapi.server({
    host: 'localhost',
    port: 3000
});

// Add the route
server.route({
    method: 'GET',
    path:'/hello',
    handler: function (request, h) {
        return 'hello world';
    }
});

async function start() {

    try {
        await server.start();
    }
    catch (err) {
        console.log(err);
        process.exit(1);
    }

    console.log(`App running at: ${server.info.uri}/hello`);
}

start();

这是我的 Dockerfile:

FROM node:8.9.3

MAINTAINER My Name <[email protected]>

ENV NODE_ENV=production
ENV PORT=3000
ENV user node

WORKDIR /var/www
COPY package.json yarn.lock ./

RUN cd /var/www && yarn

COPY . .

EXPOSE $PORT

ENTRYPOINT ["yarn", "start"]

这是我的 package.json:

{
    "name": "my-app",
    "version": "1.0.0",
    "repository": "https://github.com/myname/myrepo.git",
    "author": "My Name",
    "license": "MIT",
    "private": true,
    "dependencies": {
        "hapi": "17.2.0"
    },
    "scripts": {
        "start": "node ./src/server"
    }
}

问题不在于 Docker,而在于如何配置节点服务器。

如果您绑定到localhost它只能从 docker 容器内使用。如果您想允许来自 docker 主机的连接,请不要提供主机名或使用0.0.0.0.

const server = Hapi.server({
    host: '0.0.0.0',
    port: 3000
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Node Docker 运行,但看不到应用程序 的相关文章

随机推荐

  • 创建自定义 Powershell 对象的多个实例

    我正在 Powershell 脚本中创建一个新对象 或者实际上是一个对象类型 我想创建该对象的多个实例 我该怎么做呢 下面的代码是我正在处理的代码 看起来数组中的所有实例都引用相同的对象 包含相同的值 Define output objec
  • DART:有人可以向我解释一下这句话吗?

    我正在学习 Dart 和 Flutter 但我正在努力解决一些基本的编程问题 例如 getter 的使用 GoogleSignInAccount get user gt user 与 get 方法等效的是什么 什么是 变量末尾的意思是什么
  • 在 Sublime Text 2 中使用默认的 ruby​​ 版本

    我的默认当前 ruby 版本是 1 9 3 它实际上是我运行时出现的唯一版本rvm list所以我不明白我怎么能把那部分搞乱 我确实关注了this我在这里找到的教程 但它似乎破坏了一切 对于我看到的修复程序的所有变体 甚至在评论中 我不断收
  • 通过 AWS Data Pipelines 运行 python 脚本

    我使用 AWS Data Pipelines 运行夜间 SQL 查询 以填充表以获取摘要统计信息 用户界面有点时髦 但最终我安装并运行了 现在我想用 python 脚本做类似的事情 我有一个每天早上在笔记本电脑上运行的文件 forecast
  • 是否可以在不使用 lambda 的情况下将标准函数模板之一作为参数传递?

    例如 std get
  • PDO-MySQL:在准备好的语句绑定上布尔值被转换为 1 或空字符串

    我正在尝试将一些布尔值插入到 JSON 类型列中 taskSql INSERT INTO Tasks data taskListId VALUES JSON OBJECT title title done done taskListId t
  • UICollectionView 单元格与图像,单击更改背景

    我有一个UICollectionView with Custom CollectionView Cells 每个Cell上都有一个Image 它和整个Cell一样大 现在我想在用户触摸单元格时突出显示该单元格 首先我尝试了以下方法deleg
  • Apps 脚本与 Chrome 扩展:编写 Google 文档的替代拼写检查器

    Say 我想开发一个替代谷歌文档的拼写检查模块 这意味着我必须从后端获取更正 并对拼写错误的文本的背景进行着色 并在用户将鼠标悬停在其上方时弹出一个小气泡 在其中显示更正 请注意 拼写检查不是我项目的实际目标 但它确实以更简化的方式解决了我
  • 计算 Pandas 中字符串列中的单词数

    我有一个 pandas 数据框 其中包含给定时间段的查询和计数 我希望将此数据框转换为唯一单词的计数 例如 如果数据框包含以下内容 query count foo bar 10 super 8 foo 4 super foo bar 2 我
  • 外部表的格式不符合预期。

    我正在创建一个小应用程序来将 Excel 数据导入我的数据库 当我单击按钮时 它崩溃并出现错误 外部表的格式不符合预期 我尝试在谷歌上搜索并更改代码 但问题仍然出现 我尝试将文件另存为 xls 当我运行代码时 页面与 google chro
  • 具有自定义哈希行为的 python 对象集

    我想使用一个集合来管理 myItem 实例的集合 myItem 类有自己的哈希函数 这些项目的哈希值基于每个项目中的部分数据 但不是全部数据 为简单起见 在下面的示例中 数据 是字典 r 哈希考虑了 2 个键 hk1 和 hk2 还有第三个
  • AutoValue 示例:错误:找不到符号类 AutoValue_Animal

    我正在尝试了解 AutoValue 我按照中的例子https github com google auto blob master value userguide index md 我使用的是 Android Studio 3 4 我添加我
  • RxJava 调度程序的用例

    在RxJava中有5种不同的调度程序从中选择 即时 创建并返回一个立即在当前线程上执行工作的调度程序 蹦床 创建并返回一个调度程序 该调度程序将当前线程上的工作排队 以便在当前工作完成后执行 新线程 创建并返回一个为每个工作单元创建一个新线
  • Flask 会话过期时调用函数

    在我的 Flask 应用程序中 我正在保存与用户相对应的文件 并希望在用户的 会话 过期时删除这些文件 是否可以检测会话过期并立即调用函数 遇到了同样的问题 并没有通过使用内置的永久会话过期功能来解决它 而是将我自己的密钥添加到会话中并在每
  • 一旦开始,如何停止intent.ACTION_CALL?

    我在用Intent intent new Intent Intent ACTION CALL 从我的应用程序拨打电话 有什么办法可以在一段时间后终止通话吗 或者在ACTION CALL开始之前设置一个计时器 我正在使用 Prasanta 博
  • Emacs 击键表示混乱

    我通常在 emacs 中使用定义新的键绑定 C x gt command kmacro start macro C x gt kmacro end macro name last kbd macro insert kbd macro But
  • 在 C# 中合并两个对象

    我有一个对象模型MyObject具有各种属性 在某一时刻 我有两个这样的实例MyObject 实例 A 和实例 B 如果实例 B 具有非空值 我想复制实例 A 中的属性并将其替换为实例 B 的属性 如果我只有 1 个具有 3 个属性的类 没
  • android.R.id.empty 在 Xoom/Honeycomb 中损坏?

    我一直在尝试制作没有切换点的单选按钮 我通过这样做取得了成功 myRadioButton setButtonDrawable android R id empty 这在 Honeycomb 3 0 x 之前的所有设备中都可以正常工作 当我尝
  • 如何访问 Swift 中闭包内的变量?

    我是 Swift 新手 我正在尝试从这个函数中获取结果 我不知道如何访问从闭包外部传递给 sendAsynchronousRequest 函数的闭包内部的变量 我已经阅读了 Apple Swift 指南中有关闭包的章节 但没有找到答案 并且
  • Node Docker 运行,但看不到应用程序

    我的 Hapi 应用程序似乎正在 Docker 容器中运行 但我无法在浏览器中访问它 我以为docker run d p 8080 3000本来会这么做的 但我想不会 我正在运行 boot to docker 但两者都没有http loca