node.js - 无法使用 npm start 启动 Express.js 应用程序,它以 Docker 启动,但现在 Docker 也不起作用
问题描述
我正在使用 Docker 开发带有 React 前端的 Node Express API,我在 Win 10 上开发,但产品在 Ubuntu VPS 上运行。
一切正常,直到昨天 Docker 停止工作并出现错误:
'Hyper-V 无法找到名为“DockerNAT”的虚拟交换机'。
在 github、stackoverflow、microsoft 等上尝试了所有相关问题的建议后,没有任何效果,所以我决定不使用 Docker 继续,所以我尝试使用 运行我的 API npm start
,以前可以,但现在不行。好像卡住了;什么都没有发生,没有错误消息,什么都没有,但即使几个小时后它根本就没有启动。
我的 React 前端仍然使用npm start
. 自从之前与 Docker 一起运行以来,我没有更改相关文件中的任何内容,现在我不知道可能是什么问题。
这是我在 API package.json 中的开始:
"scripts": {
"start": "node ./bin/www"
},
www
在正确的文件夹中,它与 Docker 一起使用。
这是 API 的 Docker 文件:
FROM mhart/alpine-node:8.11.4
WORKDIR /api
COPY package*.json /api/
RUN npm install
COPY . /api/
EXPOSE 9000
CMD ["npm", "start"]
这是一起运行两个项目的 docker-compose.yml,它完美地工作:
version: "2.1"
networks:
webappnetwork:
driver: bridge
services:
website:
build: ./website
restart: always
ports:
- "3000:3000"
volumes:
- ./website:/website
- /website/node_modules
networks:
- webappnetwork
api:
build: ./api
restart: always
ports:
- "9000:9000"
volumes:
- ./api:/api
- /api/node_modules
networks:
- webappnetwork
在 Docker 停止工作之前没有任何 Windows 更新,Docker 也已经是最新版本,我没有更改任何代码。
我检查了我的 Docker 日志文件,起初它说:
无法获取 DockerNAT 开关
但我多次重新安装了不同的版本,现在它说:
MobyLinux 不存在
起初它存在;我在 Hyper-V 中检查了它,但现在它不存在。Hyper-V 网络适配器也消失了,在设备管理器中看不到它们。
如果有人能想到一些可以尝试的东西,无论是与 Docker/Hyper-V 错误有关还是为什么npm start
会被卡住,我都会非常感激。
解决方案
推荐阅读
- html - 移动问题的 Flexbox
- javascript - Discord.js 在检查特定角色后不会发送嵌入消息
- reactjs - 如何在反应中保存以前的状态?
- c++ - 为什么当 i < 0 时我的 while 循环没有终止?
- javascript - 实时视觉插入排序有间隙,输出延迟
- java - 有没有办法在不将父节点合并到程序中的情况下从 BST 中删除节点?
- javascript - 尝试使用 react-mde 降价编辑器时“未定义不是函数”
- python - 将本地 Jupiter Notebook 连接到远程 Putty 会话
- angular - Angular9 - 从 2 个 Observables 返回嵌套对象
- mobx-state-tree - 使用 mobx-state-tree 中的 types.reference 动态创建嵌套模型