【发布时间】:2016-05-17 10:50:07
【问题描述】:
我有一个使用 npm 脚本的 Node.js 项目。摘自package.json:
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"build-all": "./node_modules/.bin/webpack --progress --config ./webpack/client.config.js && ./node_modules/.bin/webpack --progress --config ./webpack/server.config.js",
"web": "python -m SimpleHTTPServer 8888",
"server" : "./node_modules/.bin/electron-spawn ./dist/server.js"
},
我正在为这个项目创建一个Dockerfile。我希望使用 npm 作为图像的入口点。在 Dockerfile 我有:
ENTRYPOINT ['/usr/local/bin/npm' 'run']
当我尝试从图像中启动一个 hcontainer 时,它说它找不到 npm
root@vagrant-ubuntu-trusty-64:/home/vagrant# docker run my_image web
web: 1: web: [/usr/local/bin/npm: not found
如果我在镜像中启动一个 shell,看起来 npm 可执行文件就在那个路径上
root@vagrant-ubuntu-trusty-64:/home/vagrant# docker run -i -t --entrypoint /bin/bash my_image
root@5e7362a64412:/# ls /usr/local/bin/npm
/usr/local/bin/npm
【问题讨论】:
-
虽然,这不是一个好主意,因为
npm不会在容器化设置中将信号传递给子进程,更多信息例如在this summary
标签: docker npm dockerfile