【问题标题】:HapiJS web app inside docker container not respondingdocker容器内的HapiJS Web应用程序没有响应
【发布时间】:2017-12-16 09:36:06
【问题描述】:

我通过 docker compose 2+ 使用 HapiJS

.env

NODE_VIEWS_PATH=../
NODE_PUBLIC_PATH=../
MONGODB_URI=mongodb://127.0.0.1:27017/mahrio
WEB_DOMAIN=http://127.0.0.1:6085

在某处深处,我正在通过这些 .env 文件设置 HapiJS 的东西,但对于 Docker,我知道我需要做一些更改.. 没问题,我制作了一个特定于 docker 的版本

docker.env

NODE_VIEWS_PATH=../
NODE_PUBLIC_PATH=../
MONGODB_URI=mongodb://mongo:27017/mahrio
WEB_DOMAIN=http://0.0.0.0:6085

我试过 0.0.0.0127.0.0.1 ,都不管用

我可以看到一切似乎都正常,但是当我转到 localhost:6085 时,我没有得到任何回应。

127.0.0.1 didn’t send any data.

Dockerfile

FROM node:carbon

# Create app directory
RUN mkdir -p /usr/src/mahrio
WORKDIR /usr/src/mahrio

COPY package*.json /usr/src/mahrio

RUN npm install
# If you are building your code for production
# RUN npm install --only=production

COPY . /usr/src/mahrio

EXPOSE 6085
CMD ["npm", "start"]

docker-compose.yml

version: "2"
services:
  app:
    build: .
    container_name: mahrio
    depends_on:
      - mongo
    env_file:
      - docker.env
    ports:
      - "6085:6085"
    restart: always
  mongo:
    container_name: mongo
    image: mongo
    volumes:
      - ./tmp:/data/db
    ports:
      - "27017:27017"

有什么想法吗? nodejs 不会出现任何错误,在控制台上一切看起来都还不错,我知道它在 docker 之外工作得很好。

编辑:添加了docker ps

CONTAINER ID        IMAGE                                        COMMAND                  CREATED             STATUS                      PORTS                                              NAMES
25e7a4c3f350        mahriomedium_app                             "npm start"              24 hours ago        Up About a minute           0.0.0.0:6085->6085/tcp                             mahrio
c8d691777aa0        mongo                                        "docker-entrypoint..."   3 days ago          Up About a minute           0.0.0.0:27017->27017/tcp                           mongo 

docker logs

> mahrio-medium@0.0.1 start /usr/src/mahrio
> node server/index.js

Running Development!
MongoDB Config...
Server running at: http://127.0.0.1:6085
MongoDB connected!
db connection opened

【问题讨论】:

  • 如果你使用docker ps -a 找到容器,看看它是否还在运行。 docker logs {containerId} 会告诉你应用程序是如何启动的或者它是否崩溃了。
  • 如果你去http://mahrio:6085 可以查看申请吗?
  • 如果它仍在运行,docker 日志会说什么?
  • @d3l33t 尝试 mahrio:6085 给出相同的结果
  • @ShawnC。在末尾添加docker logs,以及docker ps output

标签: mongodb docker docker-compose hapijs


【解决方案1】:

原来WEB_DOMAIN 是错误的环境变量

正确的变量是NODE_URI 设置为0.0.0.0

现在一切正常

【讨论】:

    猜你喜欢
    • 2020-06-16
    • 1970-01-01
    • 2017-05-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-01
    • 2021-08-23
    相关资源
    最近更新 更多