我已经使用以下配置在 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
同一图像中手动运行相同命令时?