与ONBUILD选项(Windows中的Docker工具箱)

我在Docker上遇到了问题(通过Docker Toolbox)。 可能有人可以帮忙。

我的Dockerfile没有ONBUILD:

FROM node:5.9.1 RUN mkdir -p /usr/src/app WORKDIR /usr/src/app COPY package.json /usr/src/app/ RUN npm install COPY . /usr/src/app CMD [ "npm", "start" ] EXPOSE 3000 

工作好( dockerbuild设-ttesting。并启动它: docker运行-it –rm – 名称testruntesting )但是,如果我更改Dockerfile为ONBUILD选项:

 FROM node:5.9.1 RUN mkdir -p /usr/src/app WORKDIR /usr/src/app ONBUILD COPY package.json /usr/src/app/ ONBUILD RUN npm install ONBUILD COPY . /usr/src/app CMD [ "npm", "start" ] EXPOSE 3000 

我收到一个错误:

 npm info it worked if it ends with ok npm info using npm@3.7.3 npm info using node@v5.9.1 npm ERR! Linux 4.1.19-boot2docker npm ERR! argv "/usr/local/bin/node" "/usr/local/bin/npm" "start" npm ERR! node v5.9.1 npm ERR! npm v3.7.3 npm ERR! path /usr/src/app/package.json npm ERR! code ENOENT npm ERR! errno -2 npm ERR! syscall open npm ERR! enoent ENOENT: no such file or directory, open '/usr/src/app/package.js on' npm ERR! enoent ENOENT: no such file or directory, open '/usr/src/app/package.js on' npm ERR! enoent This is most likely not a problem with npm itself npm ERR! enoent and is related to npm not being able to find a file. npm ERR! enoent npm ERR! Please include the following file with any support request: npm ERR! /usr/src/app/npm-debug.log 

什么我做错了? (IM新手在Docker :))。 也许我错了使用ONBUILD? 但是,像任何不清楚,没有。

如Dockerfile手册页所述 :

ONBUILD指令为图像添加一个触发指令,稍后将该图像用作另一个构建的基础

由于您没有使用以“ FROM test ”开头的另一个映像,因此这些指令从不执行,这意味着test映像不包含这些命令应该执行的操作。

除非您在问题中遗漏了一些细节,否则您不能正确使用ONBUILD

ONBUILD选项是排队命令以在后续的构建中运行。 上面指定的命令将不会被执行,除非您通过将其包含在另一个Dockerfile中的FROM引用中来包装图像。

请参阅有关此主题的Dockerfile参考以获取更多信息。