创建预安装了Node.js/NPM但没有package.json的docker容器

创建预安装了Node.js/NPM但没有package.json的docker容器,node.js,docker,dockerfile,Node.js,Docker,Dockerfile,我正在寻找一个Docker图像,它只是一些安装了NPM和Node.js的*nix风格 这个图像 要求存在package.json文件,Docker构建使用COPY将package.json文件复制到上面,并在运行构建时查找Node.js脚本 …我只需要一个容器来使用以下技术运行shell脚本: docker exec mycontainer /path/to/test.sh 我通过以下途径发现: 我不需要package.json文件或Node.js启动脚本,我只需要 容器图像 已安装Nod

我正在寻找一个Docker图像,它只是一些安装了NPM和Node.js的*nix风格

这个图像

要求存在package.json文件,Docker构建使用COPY将package.json文件复制到上面,并在运行构建时查找Node.js脚本

…我只需要一个容器来使用以下技术运行shell脚本:

docker exec mycontainer /path/to/test.sh
我通过以下途径发现:

我不需要package.json文件或Node.js启动脚本,我只需要

  • 容器图像
  • 已安装Node.js和NPM

  • 有人知道Node.js/NPM是否有不需要package.json文件的Docker映像吗?也许我应该使用一个普通的旧容器映像,只添加代码来安装自己的节点?

    好吧,我试图让这个问题变得简单,不幸的是,直到现在还没有人能提供一个简单的答案

    不使用此基础映像:

    FROM node:5-onbuild
    
    我们用这个来代替:

    FROM node:5
    
    我读过关于onbuild的文章,但不知道它是关于什么的,但它增加了我的用例所需要的更多内容

    下面的代码在我们的Dockerfile中

    # 1. start with this image as a base
    FROM node:5
    
    # 2. copy the script from real-life into the container (magic)
    COPY script.sh /usr/src/app/ 
    
    # 3. define container entry point which will run our script 
    ENTRYPOINT ["/bin/bash", "/usr/src/app/script.sh"]
    
    您可以这样构建docker映像:

    docker build -t foo .
    
    然后像这样运行图像,它将“运行入口点”:


    容器stdout应该流到您运行
    docker run
    的终端,这很好(我要求的太多了吗?)

    谢谢,我只想在容器中运行一些测试。事实证明,我可以使用package.json文件的启动脚本来运行所讨论的bash脚本。但我并不真正需要package.json文件。我只需要(1)一个容器,(2)安装NPM和node.js。添加了一个答案,似乎适合我的需要。
    docker run -it --rm foo