2016-03-28 19 views
1

我在Docker上的Docker有問題(通過Docker Toolbox)。可能有人可以幫忙。ONBUILD選項出現錯誤(Windows中的Docker工具箱)

我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 

工作正常(搬運工建立-t測試並啓動它:搬運工運行 - 它--rm --name testrun測試) 但如果我改變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 [email protected] 
npm info using [email protected] 
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 

我做錯了什麼? (即時通訊新手在Docker :))。也許我錯了使用ONBUILD?但是就像沒有明確的事情一樣,沒有。

回答

2

Dockerfile man page提到:

ONBUILD指令增加了圖像在以後的時間,當圖像被用作基地另一個構建要執行的觸發指令。

既然你不使用其他圖像開始「FROM test」,這些指令是永遠不會被執行,這意味着test圖像不包括什麼這些命令應該做的事情。

1

除非您在問題中遺漏了一些細節,否則您沒有正確使用ONBUILD

ONBUILD選項是將命令排隊以在後續構建中運行。上面指定的命令不會被執行,除非您通過將其包含在另一個Dockerfile中的FROM引用中來包裝圖像。

有關此主題的更多信息,請參閱Dockerfile reference

相關問題