6

我已经使用以下配置在 docker 容器中成功运行了json-server一段时间:

码头工人文件:

FROM node:alpine    
EXPOSE 3000
COPY deploy/conf/mockBackend.json /opt/mockBackend.json
RUN yarn global add json-server
CMD ["json-server", "/opt/mockBackend.json"]

运行命令:

docker run -d -p 3000:3000 --name mockbackend mockbackend

最近这停止了工作。我进入ERR_CONNECTION_REFUSED 浏览器。

默认情况下 json-server 绑定到127.0.0.1,如果是正确的,这可能会导致此问题。

我不知道为什么它以前可以工作,但是将 json 服务器绑定到每个接口json-server -H 0.0.0.0 mockBackend.json使其再次工作。

我现在的问题是json-server在图像中手动启动这种方式可以正常工作,但是当我CMD将 Dockerfile 的行更改为时,CMD ["json-server", "-H 0.0.0.0", "/opt/mockBackend.json"]出现以下错误:

码头工人日志:

  \{^_^}/ hi!

  Loading /opt/mockBackend.json
  Done

  Resources
  http:// 0.0.0.0:3000/xxx
  http:// 0.0.0.0:3000/yyy

  Home
  http:// 0.0.0.0:3000

  Type s + enter at any time to create a snapshot of the database
events.js:167
      throw er; // Unhandled 'error' event
      ^

Error: getaddrinfo ENOTFOUND  0.0.0.0
    at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:50:26)
Emitted 'error' event at:
    at GetAddrInfoReqWrap.doListen [as callback] (net.js:1498:12)

看起来json-server开始很好,但随后退出并出现错误。知道为什么这只发生在使用 CMD 行启动容器时,而不是在json-server同一图像中手动运行相同命令时?

4

0 回答 0