我的Windows上的Docker问题(通过Docker Toolbox)。可能有人可以提供帮助。
没有ONBUILD的我的Dockerfile:
SQLSTATE[42S22]: Column not found: 1054
Unknown column '0' in 'where clause'
(SQL: select * from `devices` where (`0` = 1))
正常工作( docker build -t test。并启动它: docker run -it --rm --name testrun test ) 但是,如果我将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
我收到错误:
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
我做错了什么? (我是Docker的新手:))。也许我错了使用ONBUILD?但就像任何不清楚的事情一样,没有。
答案 0 :(得分:2)
如Dockerfile man page中所述:
ONBUILD
指令为图像添加稍后要执行的触发指令,当图像用作另一个版本的基础时。
由于您没有使用以" FROM test
"开头的其他图像,因此这些指令永远不会执行,这意味着test
图像不包含这些命令应该执行的操作
答案 1 :(得分:1)
除非您在问题中遗漏了一些细节,否则您未正确使用ONBUILD
。
ONBUILD
选项是将命令排入队列以在后续构建中运行。除非您将图像包含在另一个Dockerfile的FROM
引用中,否则上面指定的命令将无法执行。
有关其他信息,请参阅此主题的Dockerfile reference。