docker 上的错误 运行 流星
error running meteor on docker
我刚刚在 Docker 上用流星开始了一个项目。当它在 meteor npm install
之后运行 meteor
时,它给出了这个错误
[[[[[ /var/app ]]]]]
=> Started proxy.
/root/.meteor/packages/meteor-tool/.1.4.1_1.139xb76++os.linux.x86_64+web.browser+web.cordova/mt-os.linux.x86_64/isopackets/ddp/npm/node_modules/meteor/promise/node_modules/meteor-promise/promise_server.js:165
throw error;
^
Error: EPROTO: protocol error, symlink '/root/.meteor/packages/meteor-tool/.1.4.1_1.139xb76++os.linux.x86_64+web.browser+web.cordova/mt-os.linux.x86_64/dev_bundle/server-lib/node_modules' -> '/var/app/.meteor/local/.build677392.build/programs/.build850480.server/node_modules'
at Error (native)
郑重声明,我是 运行 docker 通过我的 Win 10 上的 virtualbox。看来问题是关于创建符号链接失败,但我安装了相同的 virtualbox 扩展包版本和符号我的 virtualbox 上已经启用了共享文件夹。还有哪些其他可能导致该问题?
更新
如 this suggestion 中那样,将 --no-bin-links
放入 meteor npm install
没有任何效果。
我有一个灵感来自 this answer 的解决方案。基本上不是弄清楚如何修复符号链接,我们 "move" 流星本地文件到它自己的卷中。这可以通过 docker-compose 创建一个卷来完成。设置将是
version: '2'
services:
webpack:
build:
context: .
dockerfile: Dockerfile
volumes:
- .:/var/app
- node_modules:/var/app/node_modules
- meteor_local:/var/app/.meteor/local
ports:
- 3000:3000
links:
- db
environment:
- LANG=en_US.UTF-8
- LC_ALL=en_US.UTF-8
db:
image: mongo
volumes:
node_modules:
driver: local
meteor_local:
driver: local
如您所见,通过将 .meteor/local
安装到 meteor_local
中,它允许任何需要在容器 space 中创建指向 运行 的符号链接的进程与共享导致进程失败的文件夹。采用这种方法意味着无需在 npm install
之后添加 --no-bin-links
我刚刚在 Docker 上用流星开始了一个项目。当它在 meteor npm install
之后运行 meteor
时,它给出了这个错误
[[[[[ /var/app ]]]]]
=> Started proxy.
/root/.meteor/packages/meteor-tool/.1.4.1_1.139xb76++os.linux.x86_64+web.browser+web.cordova/mt-os.linux.x86_64/isopackets/ddp/npm/node_modules/meteor/promise/node_modules/meteor-promise/promise_server.js:165
throw error;
^
Error: EPROTO: protocol error, symlink '/root/.meteor/packages/meteor-tool/.1.4.1_1.139xb76++os.linux.x86_64+web.browser+web.cordova/mt-os.linux.x86_64/dev_bundle/server-lib/node_modules' -> '/var/app/.meteor/local/.build677392.build/programs/.build850480.server/node_modules'
at Error (native)
郑重声明,我是 运行 docker 通过我的 Win 10 上的 virtualbox。看来问题是关于创建符号链接失败,但我安装了相同的 virtualbox 扩展包版本和符号我的 virtualbox 上已经启用了共享文件夹。还有哪些其他可能导致该问题?
更新
如 this suggestion 中那样,将 --no-bin-links
放入 meteor npm install
没有任何效果。
我有一个灵感来自 this answer 的解决方案。基本上不是弄清楚如何修复符号链接,我们 "move" 流星本地文件到它自己的卷中。这可以通过 docker-compose 创建一个卷来完成。设置将是
version: '2'
services:
webpack:
build:
context: .
dockerfile: Dockerfile
volumes:
- .:/var/app
- node_modules:/var/app/node_modules
- meteor_local:/var/app/.meteor/local
ports:
- 3000:3000
links:
- db
environment:
- LANG=en_US.UTF-8
- LC_ALL=en_US.UTF-8
db:
image: mongo
volumes:
node_modules:
driver: local
meteor_local:
driver: local
如您所见,通过将 .meteor/local
安装到 meteor_local
中,它允许任何需要在容器 space 中创建指向 运行 的符号链接的进程与共享导致进程失败的文件夹。采用这种方法意味着无需在 npm install
--no-bin-links