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

时间:2016-11-23 05:05:20

标签: node.js docker dockerfile

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

此图片

https://hub.docker.com/_/node/

要求存在package.json文件,并且Docker构建使用COPY复制package.json文件,并且它还会查找在运行构建时启动的Node.js脚本。

...我只需要一个容器来运行使用这种技术的shell脚本:

docker exec mycontainer /path/to/test.sh

我发现的是:

Running a script inside a docker container using shell script

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

  1. 容器图片
  2. 已安装Node.js和NPM
  3. 有没有人知道Node.js / NPM是否存在不需要package.json文件的Docker镜像?也许我应该只使用一个普通的旧容器图像,然后添加代码来自己安装Node?

1 个答案:

答案 0 :(得分:0)

好吧,我试图把这个问题变成一个简单的问题,不幸的是,没有人可以提供一个简单的答案......直到现在!

而不是使用此基本图像:

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 build -t foo .

然后你运行图像,这将“运行入口点”:

docker run -it --rm foo

容器标准输出应该流到您运行docker run的终端,这很好(我问的太多了吗?)。