我有一个在 Arch Linux (sailsjs-dev) 上构建的带有 Node 和 sailsjs 的 docker 镜像,我想将其用于开发,将应用程序目录安装在容器内,如下所示:
docker run --rm --name testapp -p 1337:1337 -v $PWD:/app \
sailsjs-dev sails lift
$PWD 是 sails 项目的目录。
这在 linux 上运行良好,但如果我尝试在 macosx(使用 docker-machine)上运行它,它会在一开始就永远挂起,日志级别设置为 silly(在 config/log.js 中):
info: Starting app...
没有其他输出,这就是我们得到的。
请注意,相同的 docker 图像在 mac 上也可以通过 express 应用程序完美运行。导致问题的 sails 有什么特殊之处?
我还可以补充一点,在 Mac 上,docker 使用一个名为 docker machine 的 virtualbox 实例强>。
最佳答案
我们从 docker 容器中运行 npm install 解决了这个问题:
docker run --rm --name testapp -p 1337:1337 -ti -v $PWD:/app \
sailsjs-dev /bin/bash
npm install --no-bin-links
--no-bin-links
避免创建符号链接(symbolic link)。
关于node.js - macos 上用于 sails js 开发的 Docker 图像挂起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33811794/