gpt4 book ai didi

docker - 如何将 Docker 入口点设置为 NPM?

转载 作者:行者123 更新时间:2023-12-04 20:45:27 25 4
gpt4 key购买 nike

我有一个使用 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

最佳答案

该问题似乎是由于 ENTRYPOINT 中的单引号引起的。你能检查一下使用双引号问题是否解决了吗?

ENTRYPOINT ["/usr/local/bin/npm", "run"]

根据 Docker guide , ENTRYPOINT 的写法只有两种形式:
  • 执行表格 (首选):ENTRYPOINT ["executable", "param1", "param2"]
  • shell 形式 :ENTRYPOINT command param1 param2
  • 关于docker - 如何将 Docker 入口点设置为 NPM?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35258392/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com