我一直在跑步json-服务器 https://github.com/typicode/json-server使用以下配置在 docker 容器中成功运行了一段时间:
泊坞窗文件:
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
,如果this https://stackoverflow.com/questions/35414479/docker-ports-are-not-exposed是正确的。
我不知道为什么它以前有效,但是将 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
在同一图像内手动命令?